1

我正在使用正则表达式将字符串(或 Stringbuilder)中的某些关键字替换为我选择的关键字。但是,我无法构建有效的正则表达式模式来仅替换整个单词。

例如,如果我有 InputString = "fox foxy" 并想用 "dog" 替换 "fox",那么输出将是 "dog dogy"。

什么是仅采用“狐狸”而留下“狐狸”的有效正则表达式模式?

 public string Replace(string KeywordToReplace, string Replacement) /
        {

            this.Replacement = Replacement;
            this.KeywordToReplace = KeywordToReplace;

            Regex RegExHelper = new Regex(KeywordToReplace, RegexOptions.IgnoreCase);

            string Output = RegExHelper.Replace(InputString, Replacement);

            return Output;
        }

谢谢!

4

3 回答 3

6

正则表达式支持表示单词边界的特殊转义序列。单词字符是[a-zA-Z0-9]. 因此,单词边界位于属于该组的任何字符与不属于该组的字符之间。转义序列是\b

\bfox\b
于 2012-10-03T15:00:21.580 回答
2

不要忘记在你的 '\bword\b' 之前加上 '@' 符号。例如:

address = Regex.Replace(address, @"\bNE\b", "Northeast");

@ 符号确保转义字符反斜杠 (\) 不会被转义!

于 2015-07-24T18:24:10.977 回答
0

你需要使用边界..

KeywordToReplace="\byourWord\b"
于 2012-10-03T15:04:46.890 回答