例如,如果我尝试匹配输入字符串中的“w”
爱德华·伍德沃德
第二个单词中的两个“w”应该匹配,而不是第一个单词中的两个“w”。
我有一种暗示,该解决方案可能涉及“消极后视”,但只是无法获得任何可行的解决方案。
(我正在使用 Objective C 和正则表达式替换方法NSMutableString
但我也很高兴听到任何正则表达式实现的解决方案。)
您的问题是,您不仅需要lookbehind(某些正则表达式风格根本不支持),而且需要在lookbehind断言内无限重复(只有极少数风格支持,例如.NET)。
因此,.NET 或 JGSoft 兼容的正则表达式
(?<=w.*)w
不适用于 Objective C、Python、Java 等。
所以你需要分几个步骤来完成:首先找到第一个之后的字符串w
:
(?<=w).*
(如果您有向后查找支持),然后进行匹配并搜索w
里面。
如果不支持lookbehind,则搜索w(.*)
并对捕获组 1 的内容应用以下搜索($1
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)