2013-07-12 227 views
0

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

谢谢!

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... 

    } 

回答

1

你可以把一个“\”,如果你想有一个字符,前面,因此会使用:

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

您还可以使用“\\”,如果你需要找到类似“\ s”的东西,其中“\ *”是一个Regex选项。

+0

感谢bud ......那就是诀窍! – salazar44

2

通过添加括号:

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

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

注意,一旦你加括号,单词边界不再是必需的。还要注意,你不需要逃避关闭方括号

相关问题