这是我的示例字符串:
(20,'7,8,9|1|X',1,1,1,1,1),
(81,'3',1,1,1,1,10),
(83,'3',1,1,1,1,15),
我的任务是仅在以“(20,”开头的行中将“|X'”替换为“|X|X|X”
使用 www.rubular.com 我已经获得了 reg ex。 : ^(20,'.*)X' 与此字符串匹配: (20,'7,8,9|1|X' 这意味着,替换命令将替换与我的注册表匹配的整个字符串。例如。
我不知道如何只选择子字符串“|X'”并仅替换它。
我最好使用 Notepad++ ,如果它能够替换 reg-ex 子字符串。
最佳答案
在 Notepad++ 查找/替换窗口的“查找”下键入以下内容:
^(\(20,.*)(\|X)(.*\),)$
上面的正则表达式中有三个捕获组。第一组 (\(20,.*)
匹配 |X
之前的所有内容,第二组 (\|X)
是您想要的正在尝试查找,第三组 (.*\),)
是 |X
之后的所有内容。比赛本身可用作变量 $1
、$2
和 $3
,分别对应从左到右的第一组、第二组和第三组比赛对。
在“替换”框中键入以下内容:
$1\|X\|X\|X$3
这有效地仅替换您想要的内容,同时保留该行的其余部分。
这是一个可以测试正则表达式的链接:
和here is a link参见讨论 Notepad++ 中查找/替换的规范 Stack Overflow 文章。
关于regex - 如何在文本编辑器中替换正则表达式的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33297245/