2014-09-30 124 views
0

我正在使用正则表达式来获取任何位置字符串内某个单词的匹配。我使用正则表达式是C#字符串包含字Regex

^(?=.*\bMaster\b).+$ 

\bMaster\b 

手段主字如果字符串来自任何地方,应该匹配。 ,我试图以匹配C#代码是

public bool Match(string message) 
    { 
     this.match = Regex.Match(message, this.RegexPattern, RegexOptions.IgnoreCase); 
     return match.Success; 
    } 

但我在任何情况下

case 1: I am Master 
Case 2: Master 
Case 3: Master you are 
+0

只是'\ bMaster \ B'就足够了。 – 2014-09-30 07:39:14

+0

是使用这个,但不工作,我得到错误的错误 – user3226440 2014-09-30 07:39:48

+1

什么@AvinashRaj说;但请注意,C#没有正则表达式文字,并且您正在从字符串构造正则表达式,因此请确保使用双反斜杠('“\\ bMaster \\ b”')或使用原始字符串文字('@“\ bMaster \ b“')。 '“\ bMaster \ b”'相当于''bMasterb“',你大概没有测试过。 – Amadan 2014-09-30 07:40:13

回答

2

当你使用文字C#字符串得到false,反斜杠用作转义字符。所以字符串\\是一个反斜杠。因此,在C#中,正则表达式\\匹配单个反斜杠。

如果你想匹配一个C#逐字字符串,你应该写

@"\bMaster\b" 

如果你匹配的字符串常量,那么你会使用

\\bMaster\\b 
+0

谢谢双反斜杠是问题。 – user3226440 2014-09-30 07:56:17