0

我想在一个句子中搜索一个单词

word 匹配 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

如何纠正错误?谢谢你的建议。

4

3 回答 3

2

你需要使用Igonorecase选项..

所以,这将是

Regex.Replace(input,@"\bword\b","word",RegexOptions.IgnoreCase);

\b是一个边界,它允许我们匹配单个单词,但不能匹配另一个单词中的单词,例如aawordaa

于 2013-01-19T05:52:34.560 回答
1

[wWoOrRdD]只匹配一个你想要的字符[wWoOrRdD]+,它匹配一个或多个字符。

你可以让你的正则表达式不区分大小写(?ix) [word]+

另外,如果您的目标是使字符串小写,您可以使用这样的toLower()方法

input = input.toLower()

于 2013-01-19T05:53:32.800 回答
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");

更多关于正则表达式的信息

于 2013-01-19T05:56:49.580 回答