试图用正则表达式解析字符

时间:2013-03-07 17:35:40

标签: regex

我正在尝试在Exchange服务器上使用正则表达式来匹配规则“电子邮件地址是否包含字符1,2或3中的数字”

我之前从未使用过RegEx,但我想出了以下内容,ALMOST正常工作!

^([0-9] | [0-9] | [0-9])。* @ domain.com

如果字符2或3是数字,但不是第一个字符

,则有效

有人能看到/解释我哪里出错吗?

非常感谢,

Ĵ

2 个答案:

答案 0 :(得分:2)

如果第一个字符是数字([0-9]),数字([0-9])或数字([0-9]),则正则表达式正在查询:([0-9]|[0-9]|[0-9])

你可以做你想做的事情:

^([0-9]..|.[0-9].|..[0-9]).*@domain.com

检查您的字符串是否以:

开头

[0-9]..一个数字后跟两个字符

.[0-9].一个字符,一个数字和另外一个字符

..[0-9]两个字符和一个数字

您可以对其进行测试here

答案 1 :(得分:1)

当您真正尝试匹配位置上的字符时,在括号中使用alternation会出错。

如果你想匹配位置1,2或3的数字,这将有效:

^[0-9]|^.[0-9]|^..[0-9]

请注意,这不会将您的字符串验证为电子邮件地址,但假设您只向正则表达式提供有效的电子邮件地址,它将匹配您希望匹配的字符串。