我正在使用此正则表达式验证电话号码和电子邮件,但我得到Perl语法错误,有人能帮助我在这里使用什么吗
^(?:(\d)(?!\1{2}))\d{4,15}$|([A-Za-z0-9]+@[A-za-z]+\.[A-Za-z]{2,3})
我正在验证4-15之间的国际号码,也验证连续重复的号码,如1111111111111
,99999999999
,77777777777
我们不能使用超过3个重复的号码,我也在验证电子邮件一切正常,但对于重复的号码,我必须使用Perl语法?!这就是为什么我得到错误,请帮助我解决这个x1c 0d1x
1条答案
按热度按时间lymnna711#
您没有使用Perl;您使用的是RE 2,虽然它与Perl类似,但它是not quite compatible。
具体来说,它不能处理你提供的模式。这就是消息所说的。你需要提供RE 2可以处理的东西。
以下为相关部分:
在Perl中,它检查一个5-16位数的字符串,该字符串后面可以选择性地跟随换行符,但要注意前三位数不能相同。
这与[1]等效,并将在RE 2中工作:
我不知道RE 2,所以可能有一个更好的解决方案。
1.假设
\d
应该匹配[0-9]
,实际上匹配的要多得多。