我看过这个话题: 如何使用正则表达式用括号将文本括起来? 但这是在 ruby 上,我不知道 C# 的模拟 我尝试过
text = System.Text.RegularExpressions.Regex.Replace(text, ' ' + SpecialWord + ' ', " \"\0\" ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
,但没有插入我匹配的单词。那么如何用引号将匹配的单词括起来呢?
I've seen this topic:
How to surround text with brackets using regex?
but that's on ruby and I don't know the analog for C#
I tried
text = System.Text.RegularExpressions.Regex.Replace(text, ' ' + SpecialWord + ' ', " \"\0\" ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
but that didn't insert my matched word. So how do I surround my matched word with quotes?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
$
而不是\
作为反向引用。另外,将您的特殊单词放在括号中并引用该子组,否则,您将得到完整的匹配字符串:说明:
\b
是单词边界,即空格,字符串的结尾,$0
将匹配整个匹配,即包括单词边界,$1
匹配第一个子组,即括号中的部分。use
$
instead of\
for the backreference. Also, put your special word in parenthesis and reference that sub group, otherwise, you will get the complete matched string:Explanation:
\b
is a word boundary, i.e. a space, the end of the string, a full stop etc.$0
will match the whole match, i.e. including the word boundary, whereas$1
matches the first sub group, i.e. the part in the parenthesis.尝试使用
\b
来匹配单词边界,而不是空格。您还需要使用
$0
而不是\0
。Try using
\b
to match the word boundary, rather than a space.You need to use
$0
instead of\0
too.