0

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

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

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

如果 Char 2 或 3 是数字,但不是第一个字符,它可以工作

有人可以看到/解释我哪里出错了吗?

非常感谢,

Ĵ

4

2 回答 2

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]两个字符和一个数字

你可以在这里测试

于 2013-03-07T17:44:46.173 回答
1

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

如果您想匹配位置 1、2 或 3 的数字,这将起作用:

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

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

于 2013-03-07T17:46:23.163 回答