我想通过正则表达式比较以下字符串。我有很多时间冲浪,但无法得到它的模式。比较正则表达式
string str = "Full Name: Atif Mahmood"
+ "ID Number: 12345678901"
+ "Mobile Number: +921234567890";
在上面的字符串
Full Name:
ID Number:
Mobile Number:
是必要的序列并且应该有这些常数后的任何字符串。
我想通过正则表达式比较以下字符串。我有很多时间冲浪,但无法得到它的模式。比较正则表达式
string str = "Full Name: Atif Mahmood"
+ "ID Number: 12345678901"
+ "Mobile Number: +921234567890";
在上面的字符串
Full Name:
ID Number:
Mobile Number:
是必要的序列并且应该有这些常数后的任何字符串。
var regex = "Full Name:(.*)ID Number:(.*)Mobile Number:(.*)";
var match = Regex.Match(string, regex);
match.Groups [1]将包含名称,[2]将包含ID号码等(组[0]将是整个匹配组,所以计数每场比赛从1开始)
这可能需要一些防弹措施,但你明白了吗?
如果你想检查字符串遵循你所说的模式,这种表达应该这样做:
const string expression = "Full Name:.*ID Number:.*Mobile Number:.*";
bool correct = Regex.IsMatch(str, expression);
您可能想要添加锚点。否则,在全名前面会允许任何内容: –
@ m.buettner - 真,取决于匹配的规则。该规范有点含糊。 – PHeiberg
我仍然不明白;你想要一个能够识别你声明的'string str'的正则表达式吗? – AAlferez
澄清:你想提取字符串的这些部分,并与另一个字符串进行比较? – oddparity
“比较”是什么意思?你似乎没有比较任何东西。你的意思是你想在“全名:”,“ID号码”和“手机号码:”之后提取文本吗? –