美好的一天〜 我并不擅长这个正则表达式。 所以我需要你的帮助。
条件: 用户可以输入他们的电子邮件地址和名称。 我想从字符串中提取电子邮件地址和用户名。
string pattern1 = "Peter Jackson<peter@jackson.com>";
从那个字符串我想得到“Peter Jackson”和“&lt; peter@jackson.com>”。
string pattern2 = "Peter Jackson(peter@jackson.com)";
然而,人们总是犯下如下的错误。
他们也可以使用“[”而不是“&lt;”。 所以...
string pattern3 = "Peter Jackson[peter@jackson.com]";
即使是一些愚蠢的用户也可以输入......
string pattern4 = "Peter Jackson{peter@jackson.com}";
所以,我不得不寻找“&lt;”,“(”,“[”和“{”)字符。 我试过了
string regularExpressionPattern = @"^(<|(|[|{)(.*?)^(}|]|)|>)";
但我认为我做错了什么。 我也试着认为人们可以输入更多的错误......
string pattern5 = "Peter Jackson<peter@jackson.com>mistake";
有人可以帮助解决这个问题吗? 高级谢谢。
PS:我知道如何用字符分割字符串。所以它无济于事。我需要一个正确的正则表达式。
答案 0 :(得分:1)
我相信您正在寻找的正则表达式如下:
(.*?)[<([{](.*?)[>)\]}]
您需要第1组和第2组。
答案 1 :(得分:0)
(.*?)[([<{](.*?)[)\]>}]
我认为这应该足够了。
该名称将位于第一个捕获的组中,电子邮件将位于第二个。
答案 2 :(得分:0)