问题描述
正如我在问题标题中提到的,我有许多 PHP 代码文件,我必须在其中使用支持 PCRE-Regex 的任何文本编辑器从这些 PHP 文件中查找和替换/删除特定的 JSON 键值字符串。
我必须找到并删除的字符串(什么都不替换,甚至没有空格),跨越多行(缩进是 2 个空格,但也可能是 4 个空格)看起来像:
@H_502_5@{ label: "Other",value: "Other",},
如何在 Sublime Text 编辑器/记事本 ++ 中使用 PCRE-regex 删除上述字符串的第一个 @H_502_5@(n) 匹配项,以便它不会在文件的其他地方进行任何意外更改?
我对多次出现和贪婪非贪婪匹配的 Regex 不太擅长,因此感谢任何帮助,不过,我确实尝试过这个,但没有用:
@H_502_5@(.*?):\"Other\",
解决方法
对于示例数据,您可以使用
^{\R\h{2,}label:\h+"Other",\R\h{2,}value:\h+"Other",\R},
-
^{
字符串开始并匹配{
-
\R\h{2,}
匹配换行符、2 个或多个水平空白字符 -
label:\h+"Other",
匹配label:
1+ 个水平空白字符和"Other,"
-
\R\h{2,}
匹配一个换行符和 2 个水平空白字符 value:\h+"Other",
-
\R},
匹配换行符和},
用空字符串替换
如果 Other
可以是其他值,您可以使用
^{\R\h{2,}label:\h+"[^"\\]*(?:\\.[^"\\]*)*",}value:\h+"[^"\\]*(?:\\.[^"\\]*)*",