部分文字列がどこかでチャンクしているため、文字列の置換について問題が発生しました。例えば
component1 = 5;
component2 = 6;
component10= 7;
component1 をvariableに置き換えたい場合、 component10 はvariable0として変更されます
C#でこれを防ぐにはどうすればよいですか
非単語境界を使用できます。したがって、正規表現は次のようになります
\bcomponent1\b
これは、部分文字列としてではなく、別の単語として component1 に一致します。
あなたのコードは
string output=Regex.Replace(input,@"\bcomponent1\b");
@
それ以外の場合\b
は特殊文字として扱われ\b
、有効なエスケープ文字または使用ではないため、エラーが発生します\\b
部分文字列の長さの降順でそれらを置き換えるだけです。