我想用句子搜索一个单词
这个词与WORD,woRd,wORD,wOrD等相匹配......
所以,这就是我写的:
string pattern = "[wWoOrRdD]";
Regex r = new Regex(pattern);
string input = "aa WORD aa WorD";
r.Replace(input, "word");
但代码产生了这个:
aa wordwordwordword aa wordwordwordword
我真正想要的是
aa word aa word
如何纠正错误? 谢谢你的建议。
答案 0 :(得分:2)
您需要使用Igonorecase
选项..
所以,它会是
Regex.Replace(input,@"\bword\b","word",RegexOptions.IgnoreCase);
\b
是一个边界,可以让我们匹配单个词,但不能匹配另一个词中的单词aawordaa
答案 1 :(得分:1)
[wWoOrRdD]
只匹配一个字符,您希望[wWoOrRdD]+
与一个或多个字符匹配。
您可以通过将其设为(?ix) [word]+
如果您的目标是将字符串设为小写,则可以使用此类toLower()
方法
input = input.toLower()
答案 2 :(得分:1)
此正则表达式模式匹配每个字符(w / W / o / O / r / R / d / D), 您最好使用不区分大小写的匹配。
Regex regex = new Regex("\bword\b", RegexOptions.IgnoreCase);
string input = "aa Word, aa WoRD";
string output = regex.Replace(input, "word");