You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用正则表达式修改目标字符串遇问题,寻求解决方案

正则表达式替换解决方案

问题分析

你需要移除的内容包括:开头空白字符、)))","0"、换行符(vbCrLf)以及"MULTIPOLYGON ((,之前失败大概率是因为正则中未转义括号(括号在正则里属于特殊元字符,需用\(/\)转义),或者未处理换行符的匹配。

分步替换方案

  • 第一步:替换核心冗余内容
    匹配正则:\s*)))","0"\s*"MULTIPOLYGON \(\(
    替换为:),(
    解释:\s*匹配任意空白(包括换行、空格),转义后的\(/\)匹配字符串里的括号
  • 第二步:移除开头剩余空白
    匹配正则:^\s+
    替换为:空字符串

一步到位正则

直接用这个正则完成所有替换:

^\s*(.*?)))))","0"\s*"MULTIPOLYGON \(\((.*)

替换为:$1),($2
解释:(.*?)捕获第一个数字部分,(.*)捕获最后的坐标部分,用),(连接两个捕获组,同时自动去掉开头空白和中间冗余内容。

代码示例(VBA)

Dim originalStr As String, resultStr As String
originalStr = " 753108944)))"",""0"" " & vbCrLf & """MULTIPOLYGON (((""-7.7885889"

' 分步替换
resultStr = Replace(originalStr, ")))""","""0"" " & vbCrLf & """MULTIPOLYGON ((", "),(")
resultStr = LTrim(resultStr) ' 移除开头空格

Debug.Print resultStr ' 输出:753108944),(-7.7885889

代码示例(Python)

import re

original_str = ''' 753108944)))","0" 
"MULTIPOLYGON (((-7.7885889'''

result = re.sub(r'^\s*(.*?)))))","0"\s*"MULTIPOLYGON \(\((.*)', r'\1),(\2', original_str)
print(result)

内容的提问来源于stack exchange,提问作者Terry Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:53:29