像“HorsieDoggieBirdie”这样的字符串,是否有一个非捕获正则表达式替换,会杀死“Horsie”和“Birdie”,但保持“Doggie”完整?我只能想到一个捕获解决方案:擦一个字符串,但保留其中间部分
s/(Horsie)(Doggie)(Birdie)/$2/g
有没有像非捕获解决方案:
s/Horsie##Doggie##Birdie//g
其中##是正则表达式代码的某种组合?具体的问题是JavaScript(innerHTML.replace
),但我也会采用Perl的建议。
为什么你想避免捕捉? – 2010-11-09 12:21:01
那么,现在你问的问题显而易见的答案是's/HorsieDoggieBirdie/Doggie/g',但我认为这不是你真正想问的问题? – JanC 2010-11-09 12:24:34
Horsies和Birdies是一个简单的例子。真正的字符串非常长,需要3个复杂的正则表达式来识别第一个,中间和结束部分。该字符串很大,所以我试图避免与内存命中和额外处理相关联的捕获(可能不正确)。 – MrSparkly 2010-11-09 13:02:48