使用正则表达式替换字符串中的单个字符

时间:2013-01-09 22:01:15

标签: c# regex

我正在尝试使用C#替换大字符串(textfile)中的单个字符。 这个字符串包含多行代码。

在某些时候,批处理文件被称为分配多个参数:

  call c:\script.bat 1 1 16 localhost 1 1 %0%

必须成为:

  call c:\script.bat 2 1 16 localhost 1 1 %0%

我创建了以下语句来替换regex点组(在本例中为第一个)

Regex.Replace(content, @"call c:\script.bat )(.)( 1 16 localhost 1 )(.)(%0%)","$1.$3$4$5")

不知怎的,我确定,替换代替匹配的number 1不能用2替换,因为替换字符串将访问不存在的组{{1}而不是附加了12字符group 1的{​​{1}}。

有人能给我一些线索吗?

1 个答案:

答案 0 :(得分:0)

简单的解决方案是不捕获分隔空格:

Regex.Replace(content, @"(call c:\script.bat) \d (1 16 localhost 1 )(.)(%0%)","$1 2 $3$4$5")

注意:我还使用了\d数字字符集。对于大于一位数的数字,您可能希望将其更改为\d+