0

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

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

  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不能用 a 替换替换匹配的那个,2因为这样替换字符串将访问不存在的组12,而不是附加到它group 1的字符。2

有人可以给我一个线索吗?

4

1 回答 1

0

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

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

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

于 2013-01-09T22:06:17.337 回答