2013-08-28 40 views
0

我想通过正则表达式比较以下字符串。我有很多时间冲浪,但无法得到它的模式。比较正则表达式

  string str = "Full Name: Atif Mahmood" 
        + "ID Number: 12345678901" 
        + "Mobile Number: +921234567890"; 

在上面的字符串

Full Name: 

ID Number: 

Mobile Number: 

是必要的序列并且应该有这些常数后的任何字符串。

+4

我仍然不明白;你想要一个能够识别你声明的'string str'的​​正则表达式吗? – AAlferez

+2

澄清:你想提取字符串的这些部分,并与另一个字符串进行比较? – oddparity

+1

“比较”是什么意思?你似乎没有比较任何东西。你的意思是你想在“全名:”,“ID号码”和“手机号码:”之后提取文本吗? –

回答

4
var regex = "Full Name:(.*)ID Number:(.*)Mobile Number:(.*)"; 
var match = Regex.Match(string, regex); 

match.Groups [1]将包含名称,[2]将包含ID号码等(组[0]将是整个匹配组,所以计数每场比赛从1开始)

这可能需要一些防弹措施,但你明白了吗?

2

如果你想检查字符串遵循你所说的模式,这种表达应该这样做:

const string expression = "Full Name:.*ID Number:.*Mobile Number:.*"; 
bool correct = Regex.IsMatch(str, expression); 
+0

您可能想要添加锚点。否则,在全名前面会允许任何内容: –

+0

@ m.buettner - 真,取决于匹配的规则。该规范有点含糊。 – PHeiberg