求适配Exchange Online的正则:匹配字符串中至少10个@符号
匹配字符串中任意位置的至少10个@符号(Exchange Online兼容)
解决方案
直接使用以下正则表达式:
(.*?@){10,}
原理说明
- 你最初尝试的
[@]{10,}仅能匹配连续的10个及以上@符号,自然无法覆盖分散在字符串各处的场景。 - 新方案的逻辑拆解:
.*?:非贪婪模式匹配任意数量的任意字符(确保每次匹配到下一个@就停止,不会跳过中间的@符号)@:匹配单个@符号(.*?@){10,}:将「任意字符+@」的组合重复至少10次,以此捕获字符串中分散在任意位置的10个@符号
Exchange Online兼容性说明
该正则仅使用基础正则语法,未涉及lookahead/lookbehind、反向引用等Exchange Online正则引擎不支持的高级特性,完全符合平台约束。
测试示例
- 匹配成功:包含10个及以上邮箱的字符串(如
a@x.com, b@y.com, c@z.com, d@a.com, e@b.com, f@c.com, g@d.com, h@e.com, i@f.com, j@g.com) - 匹配失败:仅含少于10个@的字符串(如
test@example.com, demo@test.com)
内容的提问来源于stack exchange,提问作者Wilholme
相关产品推荐
相关产品推荐

