C#正则表达式,在SQL中运行“LIKE”

时间:2013-01-19 05:49:26

标签: c# regex

我想用句子搜索一个单词

这个词与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

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

3 个答案:

答案 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");

Fore more informatino about regular expressions