C#正则表达式搜索包含周围括号的文本字符串

时间:2013-07-12 23:14:19

标签: c# regex

我想在字符串中搜索'[E1010]'或'[E1011]'或'[E1012]'。目前,我只能在不使用括号[]的情况下成功搜索。如何调整我的正则表达式以包括括号中包含的文本,因为它在我的sClientError变量中。

谢谢!

string sClientErrors = "Bla Blah \"30\" [E1011]\r\nBlah Blah"44\" [E1012]";

    Regex myRegexE10 = new Regex(@"\bE1010\b");
    Regex myRegexE11 = new Regex(@"\bE1011\b");
    Regex myRegexE12 = new Regex(@"\bE1012\b");

    if (myRegexE10.IsMatch(sClientErrors) || myRegexE11.IsMatch(sClientErrors) || myRegexE12.IsMatch(sClientErrors))
    {

           // do code here...

    }

2 个答案:

答案 0 :(得分:2)

添加括号:

Regex myRegexE10 = new Regex(@"\[E1010]");

Regex myRegexE1x = new Regex(@"\[E101[012]]");
if (myRegexE1x.IsMatch(sClientErrors)) { ... 

请注意,添加括号后,不再需要字边界。另请注意,您无需转义方括号

答案 1 :(得分:1)

如果你想要包含一个字符的前面,你可以放一个“\”,所以你可以使用:

Regex myRegexE10 = new Regex(@"\[\bE1010\b\]")

如果您需要找到类似“\ s”的内容,也可以使用“\\”,其中“\ *”是正则表达式选项。