繁体   English   中英

RegEx在第一次出现后匹配所有出现的字符*?

[英]RegEx to match all occurrences of a character *after* the first occurrence?

例如,如果我想在输入字符串中匹配'w'

爱德华伍德沃德

第二个单词中的两个'w'应该匹配,而不是第一个单词中的那个。

我有一个问题,解决方案可能涉及'负面看待',但是无法获得任何有效的解决方案。

(我正在使用Objective C和NSMutableString上的正则表达式替换方法,但我也很高兴听到任何正则表达式实现的解决方案。)

你的问题是你不仅需要看后面(一些正则表达式根本不支持),而是在lookbehind断言中进行无限重复(例如,只有非常少的口味支持,例如.NET)。

因此,.NET-或JGSoft兼容的正则表达式

(?<=w.*)w

不适用于Objective C,Python,Java等。

所以你需要分几步完成:首先在第一个w之后找到字符串:

(?<=w).*

(如果你有背后的支持),那么拿下比赛并在里面搜索w

如果不支持lookbehind,则搜索w(.*)并将以下搜索应用于捕获组1( $1 )的内容。

要用"X"替换每个第N"w" (其中N > 1 ),您可以搜索模式:

(?<=w)(.*?)w

并替换为:

$1X

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM