使用“HorsieDoggieBirdie”之类的字符串,是否存在非捕获的正则表达式替换,该替换会杀死“Horsie”和“Birdie”,但保持“Doggie”完整无缺?我只能想到一种捕获解决方案:

s/(Horsie)(Doggie)(Birdie)/$2/g

是否有非捕获解决方案,例如:
s/Horsie##Doggie##Birdie//g

##是正则表达式代码的组合吗?特定的问题在JavaScript(innerHTML.replace)中,但是我也会考虑Perl的建议。

最佳答案

您不必捕获HorsieBirdie

s/Horsie(Doggie)Birdie/$1/g;

类似的事情也应该适用于Javascript。这可能和它一样高效,并且至少与使用环视断言一样快。但是如果您想确定的话应该对它进行基准测试。 (结果当然取决于所涉及的马,狗和小鸟。)

强制性免责声明:将正则表达式与HTML一起使用时,您应该知道what happens ...

10-07 13:41