如何解决正则表达式 Notepad ++如何用自己和附加符号/单词替换一行?
假设我有一个与我要查找的内容相匹配的正则表达式搜索。我需要用它本身加上一个附加词来替换匹配项。
行示例:
约翰
^.*John.*$
这符合我想要的(约翰这个词)。这是我更换后需要的:
约翰 abc123
解决方法
您需要正则表达式捕获组。然后您可以使用捕获组作为您在字符串中替换的内容的一部分。我不确定 Notepad++ 使用什么语法,因此您可能需要与此示例不同的语法。请访问 regex101.com 以测试您的正则表达式。
对于您的示例,在python中,您可以使用 () 指定捕获组,并在新文本中使用 r'\1' 使用捕获组 1:
text = 'hello John,how are you'
text = re.sub('([A-Z]\w*)',r'\1' + ' abc123',text)
print(text)
# hello John abc123,how are you
,
没有理由用 .*
只需使用:
正则表达式
John
替换
$0 abc123
如果您想避免将 Johnathan
变成 John abc123athan
,请使用单词边界:
正则表达式
\bJohn\b
替换
$0 abc123
使用 ^.*John.*$
的最大问题之一是,如果一行中有两个 John
,那么只会替换最后一个。
约翰有个朋友叫约翰
会变成
约翰有一个朋友叫约翰 abc123
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。