使用“HorsieDoggieBirdie”之类的字符串,是否存在非捕获的正则表达式替换,该替换会杀死“Horsie”和“Birdie”,但保持“Doggie”完整无缺?我只能想到一种捕获解决方案:
s/(Horsie)(Doggie)(Birdie)/$2/g
是否有非捕获解决方案,例如:
s/Horsie##Doggie##Birdie//g
##是正则表达式代码的组合吗?特定的问题在JavaScript(
innerHTML.replace
)中,但是我也会考虑Perl的建议。 最佳答案
您不必捕获Horsie
或Birdie
。
s/Horsie(Doggie)Birdie/$1/g;
类似的事情也应该适用于Javascript。这可能和它一样高效,并且至少与使用环视断言一样快。但是如果您想确定的话应该对它进行基准测试。 (结果当然取决于所涉及的马,狗和小鸟。)
强制性免责声明:将正则表达式与HTML一起使用时,您应该知道what happens ...