1. ホーム
  2. c#

[解決済み] String.Replaceが "単語全体 "にしかヒットしないようにする方法

2023-06-02 21:10:30

質問

これを持つ方法が必要です。

"test, and test but not testing.  But yes to test".Replace("test", "text")

はこれを返します。

"text, and text but not testing.  But yes to text"

基本的に単語全体を置換したいのですが、部分一致はできません。

注:私はこのためにVB(SSRS 2008コード)を使用しなければならないつもりですが、C#は私の通常の言語なので、どちらでの応答も問題ありません。

どのように解決するのですか?

正規表現が最も簡単な方法です。

string input = "test, and test but not testing.  But yes to test";
string pattern = @"\btest\b";
string replace = "text";
string result = Regex.Replace(input, pattern, replace);
Console.WriteLine(result);

このパターンで重要なのは \b メタキャラクタであり、これは単語の境界でマッチします。もし大文字小文字を区別しないのであれば RegexOptions.IgnoreCase :

Regex.Replace(input, pattern, replace, RegexOptions.IgnoreCase);