2013-07-12 445 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)) { ... 

注意,一旦你加括號,單詞邊界不再是必需的。還要注意,你不需要逃避關閉方括號

相關問題