gpt4 book ai didi

regex - CAtlRegExp 用于匹配最多 4 个字符的正则表达式

转载 作者:行者123 更新时间:2023-12-04 07:04:44 25 4
gpt4 key购买 nike

精简版:
如何使用 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}$
提取自 here .
但是 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 的正则表达式?

最佳答案

试试:^[a-zA-Z0-9\._%\+\-]+@([a-zA-Z0-9-]+\.)+ \c\c\c?\c?$

此表达式替换了 [A-Z]{2,4} CAtlRegExp 不支持的序列 \c\c\c?\c?\c作为[a-zA-Z]的缩写.第3和第4个后的问号\c 's 表示它们可以匹配零个或一个字符。结果,表达式的这部分匹配 2、3 或 4 个字符,但既不多也不少。

关于regex - CAtlRegExp 用于匹配最多 4 个字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1296268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com