0

C# を使用して、大きな文字列(テキスト ファイル)内の 1 文字を置き換えようとしています。この文字列には、複数行のコードが含まれています。

ある時点で、複数のパラメーターを割り当てるバッチ ファイルが呼び出されます。

  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 12

誰かが私に手がかりを与えることができますか?

4

1 に答える 1

0

簡単な解決策は、区切りスペースをキャプチャしないことです。

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

注:\d数字の文字セットも使用しました。\d+1 桁より大きい数値の場合は、これを に変更することができます。

于 2013-01-09T22:06:17.337 に答える