如何解决如何在vbscript中使用正则表达式忽略命名电子邮件格式的特殊字符
|| 我有一个vbscript,可使用正则表达式检查命名的电子邮件格式是否正确。但是,对于带有特殊字符的命名电子邮件字符串,我的正则表达式与以下命名电子邮件不匹配:\"Davé Lory,Sr.\" <[email protected]>
我正在使用正则表达式来检查有效的命名电子邮件:
^\\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*$
但是,如果命名电子邮件中包含特殊字符(例如é或È等),则无法匹配。
如何在正则表达式中忽略这些特殊字符?
请帮忙。
谢谢。
解决方法
您不能忽略它们,需要匹配它们。
你可以在这里试试
^\\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_\\-\\.\\\'\\,\\&]*[\\\"]
\\\"[^\"]*?\\\"
您不需要在单个字符周围加方括号
[^\"]*?
是一个懒惰的匹配,它将匹配直到next6ѭ之前不是\"
的任何内容
您可以在Rubular在线查看
我没有检查表达式的其余部分,我在rubular上看到的是有许多捕获组。如果不需要结果,则可以在开括号后的?:
(例如(?:\\\"[^\"]*?\\\")
)中将其捕获。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。