私はHow to search and replace exact matching strings onlyに出くわしました。しかし、@で始まる単語がある場合は機能しません。私のフィドルはここhttps://dotnetfiddle.net/9kgW4h特殊文字を含む完全一致する単語を置換する
string textToFind = string.Format(@"\b{0}\b", "@bob");
Console.WriteLine(Regex.Replace("@bob!", textToFind, "me"));// "@bob!" instead of "me!"
また、私がやりたいものをそれに加えて、単語が\ @で始まる場合、私は見つけると@mynameを交換しようとした場合の例の\ @mynameのために言うと、ということですそれは交換を行うべきではありません。
この質問は[エスケープ](http://stackoverflow.com/questions/20505914/escape-special-character-in-regex)とは関係ありませんが、単語の境界があります。 'textToFind'に先行していないときにのみそれをマッチさせるつもりでしたか? '@"(?<!\ w){0}(?!\ w) ''正規表現 '' string.Format'を 'replace.Replace(" $ "、" $$ ")'置換文字列には、リテラル文字として扱う '$'記号が入っているかもしれません)。 –
「ボーナス」部分については、あまり明確ではありませんが、おそらく「@」(?<!\ w)(?<!(?<!\\)\\(?:\\\\)* ){0}(?!\ w) "'は何をしますか? –
私は正確な単語に一致するつもりです。だから私が '@bob'を見つけて置き換えようとすると、 '@bob.com'や\ @bobではなく '@bob'と一致するはずです。同様に\ @bobは\ @bobと一致する必要があります – Frenz