例如替换
America 's with America's
Can' t with Can't
$str =~s/' \w/'\w/g;
显然不起作用
答案 0 :(得分:1)
test.pl的内容:
$foo = "blah America 's blah Can' t blah";
$foo =~ s/(?<=\w) ?' ?(?=\w)/'/g;
print $foo, "\n";
运行&#34; perl test.pl&#34;发射
blah America's blah Can't blah
请注意,这非常严格地针对您似乎在描述的用例。如果你想要略微不同的行为(例如允许撇号周围有更多/不同的空格),你可以从这个起点做出改变。
正则表达式中出现的内容如下(空格在下面显示为下划线,仅为了便于阅读):
环顾四周的断言(前瞻,后瞻,进入&#34;积极&#34;以及&#34;负面&#34;风味)是有趣且有用的东西。您可以在the "perlre" documentation,&#34;扩展模式&#34;下阅读更多相关信息。 /&#34;环视断言&#34;。
答案 1 :(得分:0)
最简单的方法是检测(\s'|'\s)
。这与\s'
或'\s
匹配。
您可能需要考虑向+
添加\s
修饰符,以便在有人拥有两个或更多空格的美国时匹配多个修饰符。