为了将所有Jeffs'
放在前面,我测试了以下两个略有不同的正则表达式,并通过 PERL 得到了不同的结果,如下所示:s
perl -pe "s/(?<=\bJeff)(?=s)\b/'/g" myfile.txt
(?<=\bJeff)(?=s\b)
和 和有什么区别\b(?<=\Jeff)(?=s)\b
?
我的意思是把 \b 放在环视内部/外部。
为了将所有Jeffs'
放在前面,我测试了以下两个略有不同的正则表达式,并通过 PERL 得到了不同的结果,如下所示:s
perl -pe "s/(?<=\bJeff)(?=s)\b/'/g" myfile.txt
(?<=\bJeff)(?=s\b)
和 和有什么区别\b(?<=\Jeff)(?=s)\b
?
我的意思是把 \b 放在环视内部/外部。
当您放在
\b
环视之前时,匹配时不会跳过环视匹配的输入部分\b
。这意味着它必须紧接在之前s
而不是之前进行匹配Jeff
。Jeff
因此,您要匹配和之间的单词边界s
,这是不可能的,因为它们都是同一个单词的一部分。它实际上相当于