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

本文关键字:单个 字符 字符串 正则表达式 替换 | 更新日期: 2023-09-27 17:51:18

我正在尝试使用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代替,因为这样替换字符串将访问不存在的组12而不是group 1,字符2附加到它。

谁能给我点提示吗?

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

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

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

注意:我也使用了'd数字字符集。对于大于一位数的数字,您可能需要将其更改为'd+