何度もチェックしたり変更したりするために、(異なるシーケンスを検索して置き換える)1つのストリングが必要ですが、うまく機能しません。私は不変性のためにその推測する。ルーピングスルーストリング - 不変性の問題
private string DoRegexCheck(string line)
{
string pattern;
foreach (string re in this.regexPatterns.Items)
{
pattern = re;
Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
line=r.Replace(line, ""); //the line should be updated and the check should continue with updated line
}
return line;
}
奇妙なことに、うまくいくはずです。不変性は問題ではありません: 'Regex.Replace'は' line'変数に代入される**新しい** stringインスタンスを作成します。 *それはうまくいかない*あなたは何を意味しますか?どうしましたか? –
@Pavel Gatilov:シーケンスを置き換えるだけではなく、1つずつ試してみるとうまくいきました。 – user970696
"私の行が変わっていない"という場合は、単純に:あなたの正規表現のパターンは間違っています。行を更新するコードは正常です。再現するために使用できる実際のサンプルデータ(サンプルの 'line')、いくつかのサンプルパターン、希望/実際の出力を表示してください。 –