Python正则表达式如何限制空格数量实现邮箱准确提取
正则修改方案
修改后的正则表达式如下:
regex_pattern = r'Your email:\s?([^\s@]+(?:\s[^\s@]+){0,2}@[\w.,-]+)'
匹配逻辑说明
核心是将原正则中贪婪匹配的.+替换为空格数量限制结构:
[^\s@]+:匹配一段不包含空格、@的字符(?:\s[^\s@]+){0,2}:非捕获组,匹配「空格 + 非空格非@字符段」的组合,最多允许重复2次,即整个邮箱前缀部分最多包含2个空格- 超出2个空格的场景会直接匹配失败,返回空结果
场景验证
- 示例1文本匹配分组结果为
Peter @gmail.com,符合预期 - 示例2文本中邮箱前缀部分空格数超过2,匹配失败返回空,符合预期
内容的提问来源于stack exchange,提问作者Boon
相关产品推荐
相关产品推荐

