正则表达式,反向查找有线电子邮件匹配



我正在尝试做一个电子邮件匹配器,因为有很多这样的东西:

https://site_1.com@site_2.com/xxxxx

我决定用一个负数来摆脱这些。我的尝试如下:

regex = r"([a-zA-Z0-9._-]+(?!https?://.*)@[a-zA-Z0-9._-].[a-zA-Z0-9])"

我的想法是,消极的环顾四周将无法匹配任何与https://xxxxx@,但显然我错了。我做了以下操作:

email_search = re.compile(regex)
email_search.search("https://siteA.com@siteB.com")

结果是一个匹配,匹配的字符串是//siteA.com@siteB.com

我有点不得不使用re.search,因为我正在使用混淆的文本,但是负面的展望应该在我的理解中发挥作用,请告诉我我做错了什么以及如何正确地做,任何帮助都是感激的!

使用负查找来防止某些输入匹配(即"precondition "):

regex = r"(?!https?://)<actual email regex here>"

你可以链接它们:

regex = r"(?!<exclude this>)(?!<exclude that>)(?!<and that>)<actual regex here>"

除此之外- so, so,so现在已经有许多电子邮件匹配正则,我不鼓励你再发明一个。从一堆里挑一个。

较好的版本从一开始就不允许https://site_1.com@site_2.com/xxxxx这样的东西,因此您不必在自己的创建中围绕缺陷工作。

相关内容

  • 没有找到相关文章

最新更新