正規表現を見つけようとしているのですが、正確な単語にマッチさせて別の正規表現に置き換えようとしています。しかし、私が使った表現は、@のような特定の文字で始まる単語でも置き換えます。ここで 正規表現を見つけて特定の単語に一致させる
static public string ReplaceWholeWord(this string original, string wordToFind, string replacement, RegexOptions regexOptions = RegexOptions.None){
string pattern = String.Format(@"\b{0}\b", wordToFind);
string ret = Regex.Replace(original, pattern, replacement, regexOptions);
return ret;
}
が結果だ:ここで
は私のコードです
結果:現時点では
(@xがnullでない)場合、Iのみそれらの前に@
文字を持つ単語を一致させないようにする必要があります。
'@'と 't'の間に単語境界があります。空白で囲まれた単語だけを置き換える場合は、 '@"(?<!\ S){0}(?!\ S) "'を試してください。この場合、単語境界とは何を考えますか?あるいは '@'の後にマッチするのを避けたいですか?それで '@ '\ b(?<!@){0} \ b" ' –
@WiktorStribiżewを使って、' test'を 'if(test ...)'に置き換えて ''? \ S)... 'は一致しません。要件を明確にし、どの文字が「単語の一部」とみなされ、どの文字がそうでないかを明示する必要があります。 –
@MoezRebai、あなたは、どのような文字が「単語の一部」とみなされ、どの文字がそうでないかを明示してください。 –