RegEx从字符串中提取联系人姓名和电子邮件



我正试图想出一些RegEx来从字符串中提取姓名和电子邮件地址。

我知道这里有很多关于这方面的问题,只是经历了一些,它们对我不起作用。

这是我目前拥有的RegEx

(['(wds*)'s]*)<([a-zd._%+-]+@[a-zd.-]+.[a-z]{2,4}b)>

字符串可以像一样

Name Surname email@domain.com
'Name Surname' <email@domain.com>
'Name Surname' email@domain.com
Name Surname <email@domain.com>

所以我想你可以看到'和<>可以是完全可选的。

我需要它来获得两组结果,一组用于联系人姓名,另一组用于电子邮件。

由于公司的遗留代码,我正在使用经典的asp。

感谢

您可以使用

'?(w+(?:s+w+)*)'?s+<?(S+@[w.-]+.[a-zA-Z]{2,4}b)

查看regex演示

模式解释

  • '?-可选的'
  • (w+(?:s+w+)*)-第1组匹配:
    • w+-1个或多个字母数字/下划线符号
    • (?:s+w+)*-0个或多个序列的1+空格后面跟有1+字母数字/下划线符号
  • '?-可选'
  • s+-1个或多个空白符号
  • <?-可选<
  • (S+@[w.-]+.[a-zA-Z]{2,4}b)-第2组匹配
    • S+-1+非空白符号
    • @-文字@
    • [w.-]+-1个或多个字符:字母数字/下划线、点或连字符
    • .-文字点
    • [a-zA-Z]{2,4}-2到4个ASCII字母
    • b-尾随字边界

这里有两个Regex。使用第一个可以从字符串中取出电子邮件,使用第二个可以获得由两部分组成的名称。

Email
[w.-]+@(([w-]+).)+(w){2,3}
Name
b[a-zA-Z]*[^s@.]bs?b[a-zA-Z]*[^s@.]b

相关内容

  • 没有找到相关文章

最新更新