我在 asp.net 电子邮件测试框中有以下正则表达式:
([a-zA-Z0-9_\-\.]+)\@((base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com))
此正则表达式仅适用于
xxx@base.co.uk
xxx@base.com
xxx@group.com
它不适用于:
xxx@arg.co.uk
xxx@arggroup.com
请帮我
我在 asp.net 电子邮件测试框中有以下正则表达式:
([a-zA-Z0-9_\-\.]+)\@((base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com))
此正则表达式仅适用于
xxx@base.co.uk
xxx@base.com
xxx@group.com
它不适用于:
xxx@arg.co.uk
xxx@arggroup.com
请帮我
这个:
[a-zA-Z0-9_-.]
包含虚假范围,下划线到点。您的意思是像这样的“下划线、短划线还是点”:
[a-zA-Z0-9_\-.]
? 一旦我解决了这个问题,它就对我有用。
您还应该使用\.
而不是.
在地址中 - 点匹配任何字符,因此您将匹配baseXcom
您的模式。(请注意,s 中的点不需要反斜杠[]
。)
完整的更正表达式:
@"([a-zA-Z0-9_\-.]+)@((base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com))"
(请注意,我@""
用来避免必须反斜杠我的反斜杠。)
尽管我没有找到确切的问题,但您在这里错过/忽略了一个重要点。:-)
'.'
是正则表达式中的通配符,它匹配任何东西。
匹配 '。' 利用
\.
让我们试试这个
([a-zA-Z0-9_\-.]+)@(base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com)
在这里使用正则表达式测试器可能会对您有所帮助。但是,据我所见,正则表达式中有一个错误应该阻止它与任何示例一起使用:该组应该是:
[-a-zA-Z0-9_.]
通过该修复,它适用于您的所有示例。尝试构建一个-
范围_
,.
但 ASCII 值的顺序错误。
结尾部分使用的点也应该转义为base\.com
而不是base.com