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)
可以做到这一点。