作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了这个正则表达式来清除明显错误的电子邮件地址。对于我的大数据集,它适用于 98% 的情况。
pattern = re.compile('^([a-zA-Z0-9._-]+)([a-zA-Z0-9]@[a-zA-Z0-9])([a-zA-Z0-9.-]+)([a-zA-Z0-9]\.[a-zA-Z]{2,3})$')
问题所在的部分在这里:
([a-zA-Z0-9.-]+)
如果电子邮件地址在域中包含破折号或句点,这是可以的,但我不希望连续允许这两个符号,例如 .- or -.
例如,这些都可以(并且应该与正则表达式匹配):
chris@data.services.com
chris@data-services.com
但这不是(也不应该产生匹配):
chris@data.-services.com
我已经广泛阅读并尝试了在正则表达式中创建另一个组的各种选项,例如 ([\.]|[\-])?
无济于事。有人可以帮忙吗?
最佳答案
您可以使用negative look ahead assertion这里
^(?!.*\.-.*$|.*-\..*$)([a-zA-Z0-9._-]+)([a-zA-Z0-9]@[a-zA-Z0-9])([a-zA-Z0-9.-]+)([a-zA-Z0-9]\.[a-zA-Z]{2,3})$
<小时/>
更具体的内容是
^(?![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.-]+)([a-zA-Z0-9]\.[a-zA-Z]{2,3})$
<小时/>
或者如果不允许使用 ..
、--
、...
等,则可以使用
^(?![a-zA-Z0-9._@-]*[.-]{2,}[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-Z]{2,3})$
关于用于电子邮件地址的 Python 正则表达式,需要清除点划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37289172/
我在一个网站上工作,该网站有一个服务页面,其中有一些商品价格相应。 由于该网站是响应式布局,并且文本会根据正在查看的设备而变化...我正在寻找一种方法来在 HTML、CSS、JavaScript 或类
经过一些研究,我找不到这个问题的答案。有 this但它并没有真正回答我的问题。我想在 CSS 中“删除”一个完整的 HTML 表格行,而不仅仅是其中的文本。有可能吗?从我链接的示例来看,似乎 tr 样
经过一些研究,我找不到这个问题的答案。有 this但它并没有真正回答我的问题。我想在 CSS 中“删除”一个完整的 HTML 表格行,而不仅仅是其中的文本。有可能吗?从我链接的示例来看,似乎 tr 样
我是一名优秀的程序员,十分优秀!