简洁版本:
如何使用CAtlRegExp获得匹配 a@a.aaaa 但不匹配 a@a.aaaaa 的正则表达式?
长版:
我正在使用 CAtlRegExp http://msdn.microsoft.com/en-us/library/k3zs4axe(VS.80).aspx来尝试匹配电子邮件地址。我想使用正则表达式
^[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$
从这里提取。但是 CAtlRegExp 接受的语法不同于那里使用的语法。此正则表达式返回错误 REPARSE_ERROR_BRACKET_EXPECTED,您可以使用此应用程序自行检查:http: //www.codeproject.com/KB/string/mfcregex.aspx
使用所述应用程序,我创建了这个正则表达式:
^[a-zA-Z0-9\._%\+\-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z]$
但问题是这匹配 a@a.aaaaa 为有效,我需要它来匹配操作级域的最多 4 个字符。
那么,如何获得匹配 a@a.aaaa 但不匹配 a@a.aaaaa 的正则表达式?