如何在vbscript中使用正则表达式忽略指定电子邮件格式的特殊字符

时间:2011-05-23 08:19:23

标签: regex vbscript

我有一个vbscript,如果正确使用正则表达式检查指定的电子邮件格式。但是,在具有特殊字符的命名电子邮件字符串时,我的正则表达式与下面命名的电子邮件不匹配:

"Davé Lory, Sr." <jhonson@test.com>

我正在使用正则表达式来检查有效的命名电子邮件:

^\s*(([\"][\sa-zA-Z0-9_\-\.\'\,\&]*[\"])|([\sa-zA-Z0-9_\-\.\'\,\&]*))*\s*[\(<]\s*([A-Za-z0-9_\x27]+((\.|-)['A-Za-z0-9_\x27]+)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)\s*[\)>]\s*$

但如果指定的电子邮件包含特殊字符,例如é或È等,则无法匹配。

如何在正则表达式中忽略此特殊字符?

请帮忙。

感谢。

1 个答案:

答案 0 :(得分:2)

你不能忽视它们,你需要匹配它们。

你可以在这里试试这个

^\s*((\"[^"]*?\")|([\sa-zA-Z0-9_\-\.\'\,\&]*))*\s*[\(<]\s*([A-Za-z0-9_\x27]+((\.|-)['A-Za-z0-9_\x27]+)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)\s*[\)>]\s*$

我已使用

删除了您的[\"][\sa-zA-Z0-9_\-\.\'\,\&]*[\"]
\"[^"]*?\"
  1. 您不需要围绕单个字符的方括号

  2. [^"]*?是一个懒人匹配,可以匹配任何非"的内容,直到下一个"

  3. 您可以在Rubular

    在线查看

    我没有检查表达式的其余部分,我在rubular上看到的是有很多捕获组。如果您不需要结果,则可以在开始括号后?:使其无法捕获(例如(?:\"[^"]*?\"))。