我见过这个话题: How to surround text with brackets using regex? 但那是在红宝石上,我不知道C#的模拟 我试过了
text = System.Text.RegularExpressions.Regex.Replace(text, ' ' + SpecialWord + ' ', " \"\0\" ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
但是没有插入我匹配的单词。那么如何用引号括住我的匹配单词呢?
答案 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);