如何编写正则匹配;;间非空字符串(排除;"";)并添加引号?
解决方案
正则匹配与替换方案
针对你的需求,我们可以通过正则精准定位目标字符串并完成引号包裹操作:
匹配正则(针对示例场景)
(?<=;"post";)([^;]+)(?=;)
如果你的文件中第二个字段("post"位置)是可变的任意带引号内容,可使用通用版:
(?<=;"[^"]+";)([^;]+)(?=;)
替换规则
将匹配到的内容替换为:
"$1"
规则解释
(?<=;"post";):正向预查,确保目标字符串前是";post";(对应示例中第二个字段的结束位置)([^;]+):捕获组,匹配任意非分号字符,精准锁定keyword1/keyword2这类目标内容,避免跨字段匹配(?=;):正向预查,确保目标字符串后紧跟分号,限定在第三个字段范围内- 替换时用
"$1",直接把捕获到的目标内容用双引号包裹
示例效果
原输入:
"47058";"post";keyword1;"Why is x bad?";"https://example.com/why-is-x-bad/" "47059";"post";keyword2;"Why is y bad?";"https://example.com/why-is-y-bad/"
替换后输出:
"47058";"post";"keyword1";"Why is x bad?";"https://example.com/why-is-x-bad/" "47059";"post";"keyword2";"Why is y bad?";"https://example.com/why-is-y-bad/"
内容的提问来源于stack exchange,提问作者Sagar Patil
相关产品推荐
相关产品推荐

