4

テキストファイルの文字列を置き換えようとしています。

次のコードを使用します。

string text = File.ReadAllText(@"c:\File1.txt");
text = text.Replace("play","123");
File.WriteAllText(@"c:\File1.txt", text);

「play」という単語を「123」に変更するだけでなく、「display」という単語を「dis123」に変更します

この問題を解決するにはどうすればよいですか?

4

5 に答える 5

12

ここで「正規表現」を利用できます。

\b単語の境界に一致します。これで問題が解決します。

text = Regex.Replace(text, @"\bplay\b","123");

正規表現についてもっと読む

于 2013-10-27T07:26:32.547 に答える
2

次のコード スニペットを使用できます

var str = File.ReadAllText(@"c:\File1.txt");
                   var arr = str.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries).ToList();

    for (int i = 0; i < arr.Count; i++)
    {
        if (arr[i].StartsWith("play"))
        {
            arr[i] = arr[i].Replace("play", "123");
        }
    }

    var res = string.Join(" ", arr);
File.WriteAllText(@"c:\File1.txt", result);

また、これは大文字と小文字が区別されるため、これが必要なものであることを確認してください。

于 2013-10-27T08:31:15.693 に答える
0

この状況で使用できる別のテクニックは、編集したいテキストに認識可能なトークンを追加することです..例:

bla bla {PLAY} bla bla PLAY bla bla

になるだろう

bla bla 123 bla bla PLAY bla bla
于 2015-05-01T14:28:31.590 に答える