Regex 我怎样才能找到一个短语的第一次出现,而这个短语又有另一个重复
我有这样一份文件:Regex 我怎样才能找到一个短语的第一次出现,而这个短语又有另一个重复,regex,notepad++,duplicate-removal,Regex,Notepad++,Duplicate Removal,我有这样一份文件: blah blah blah blah There's a comedian called adam sandler who is funny yada yada yada yada There's a comedian called adam sandler who is funny la la la la la la 我只想用杰瑞·森菲尔德的《代码》取代第一次出现的《亚当·桑德勒》 当然,如果它只存在于一个文档中,这将很容易,但我需要在数百个文档中匹配类似的模式。我认
blah blah blah blah
There's a comedian called adam sandler who is funny
yada yada yada yada
There's a comedian called adam sandler who is funny
la la la la la la
我只想用杰瑞·森菲尔德的《代码》取代第一次出现的《亚当·桑德勒》
当然,如果它只存在于一个文档中,这将很容易,但我需要在数百个文档中匹配类似的模式。我认为记事本++将支持
\K
(?s)^.*?\K\badam sandler\b
将匹配的名称替换为jerry seinfeld
或
(?s)^(.*?)\badam sandler\b
将匹配项替换为\1jerry seinfeld
您可以使用以下正则表达式,确保选中了“
匹配换行符”
Find: \A(.*?)adam sandler(.*)\z
Replace: \1jerry seinfeld\2
然后您可以使用“在所有打开的文档中全部替换”不幸的是,当我这样做时,“全部替换”会匹配所有出现的文档。这可能是记事本++的限制,所以我愿意接受任何关于如何在Windows计算机上对文件夹中的多个文件执行此操作的建议。是否有类似于
Replace
的选项?是的,但我最终会尝试“在所有打开的文档中进行替换”。当我用两个打开的文档测试时,它替换了匹配的所有实例。你打开了dotall模式吗?但是我认为这个(?s)
可以做到这一点。