【发布时间】:2016-11-07 01:36:27
【问题描述】:
我在 C++ 中使用以下正则表达式
std::regex base_regex("[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?");
它拒绝以下输入
email@subdomain.domain.com
java 和 js 也一样。谁能解释一下
【问题讨论】:
-
在我只匹配这个测试的测试中,regex_match 函数返回真值。
-
什么编译器/版本?
-
视觉工作室 2010
-
我可以看到它接受 a@cccccb.c 但不接受 a@cccc.ccb.c 或 a@c.cc.c.ccb.c 或 a@cc.ccccb。 c 这意味着它在倒数第二个“。”之前的域部分中不接受多个字符。但我在正则表达式中找不到错误
-
按预期工作Demo。可能是旧 vs2010 中的一个错误。