通过正则表达式替换从字符串中另一个字符的第n次出现开始的字符

时间:2011-12-13 19:39:21

标签: regex

如何从以下字符串中的最后一个逗号开始替换空格:

foo, bar, 2 3 4 5

应该产生:

foo ,bar ,2345

直到第二个逗号的空格应保持不变。

1 个答案:

答案 0 :(得分:3)

搜索

\s+(?=[^,]*$)

并且一无所获。仅当字符串中没有逗号时才会匹配空白字符。

如果你想在字符串中的第二个逗号之后实现规则“所有空格,不管之后是否有更多的逗号”,那么你需要一个可以在lookbehind断言中处理无限重复的正则表达式引擎;目前只有.NET和JGSoft引擎才能这样做。如果您正在使用其中之一,那么很好:

(?<=(?:,[^,]*){2})\s+

如果前面至少有两个逗号,则匹配空格。