正则表达式:如何替换匹配模式中的字符

时间:2015-12-08 16:36:29

标签: c# regex

我有一定的模式

  

XXX>>> [a,b,c]

在一大块文本中,我想在匹配的文本中替换所有“,”只用“。”替换,所以我得到了

  

XXX>>> [一个。湾c]

是否可以仅使用Regex(c#flavor)进行,如果是,如何进行?

更新

我不想用全文中的点替换所有逗号! 它与此问题类似,但不幸的是不一样:Ruby Regex - Need to replace every occurrence of a character inside a regex match 我没有问题确定由

组成的模式
  • 前缀“XXX>>> [”
  • 需要替换逗号的目标主体,例如“a,b,c,d”
  • 后缀“]”

解决方案: (?<=XXX >>> \[|\G)([^][,]*),(?=[^][]*\])

技巧

  • \ G
  • 匹配群组声明

2 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式进行搜索:

(?<=XXX >>> \[|\G)([^][,]*),(?=[^][]*\])

并使用"$1."进行替换。

答案 1 :(得分:0)

我会分两个阶段来做这件事。首先,抓住包含要替换的逗号的行的部分:

(XXX\s>>>\s)(\[[^\]]*\])

这会捕获两个组:XXX >>>部分和[a, b, c]部分。然后,在第二部分上简单地替换逗号 - >期间。最后,将两个部分重新连接在一起。