如何使用System.Text.RegularExpressions.Regex包围单词

时间:2011-04-12 15:59:58

标签: regex string quotes match surround

我见过这个话题: How to surround text with brackets using regex? 但那是在红宝石上,我不知道C#的模拟 我试过了

text = System.Text.RegularExpressions.Regex.Replace(text, ' '  + SpecialWord + ' ', " \"\0\" ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

但是没有插入我匹配的单词。那么如何用引号括住我的匹配单词呢?

2 个答案:

答案 0 :(得分:1)

使用$代替\进行反向引用。另外,将您的特殊单词放在括号中并引用该子组,否则,您将获得完整匹配的字符串:

text = System.Text.RegularExpressions.Regex.Replace(
                         text, "\\b("  + SpecialWord + ")\\b", " \"$1\" ", 
                         System.Text.RegularExpressions.RegexOptions.IgnoreCase);

说明:

  • \b是一个单词边界,即一个空格,一个字符串的结尾,一个句号等。
  • $0将匹配整个匹配,即包括单词边界,而$1匹配第一个子组,即括号中的部分。

答案 1 :(得分:0)

尝试使用\b来匹配单词边界,而不是空格。

您也需要使用$0代替\0

text = Regex.Replace(text, @"\b" + SpecialWord + @"\b", @" ""$0"" ", RegexOptions.IgnoreCase);