我使用的正则表达式不能从html标记中捕获整个电子邮件地址。它删除/不读取最终/顶级域。
我的正则表达式模式如下所示:
(?<!mailto:)(?<=^|[^A-Za-z0-9_\-\.+@])[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,})(?!\<\/a\>)

上图是我使用在线正则表达式测试器测试正则表达式时的图像。图像显示的也是当我尝试获取电子邮件并将其打印到我的网站上时得到的输出。它省略了最后一个域,只得到了"testing.user@dom.longdomain“,而不是获取"testing.user@dom.longdomain.se”。但是当我省略html标签时,它可以很好地读取它。
知道我的正则表达式丢失了什么吗?或者我看错了吗?
发布于 2020-03-31 21:21:20
在查找regex翻译器后,我想我找到了一个解决方案。似乎结束括号丢弃了结束标记之前的所有内容。
(?!\<\/a\>)
我删除了它,它似乎工作得很好。将进行测试以确保其正常工作。
https://stackoverflow.com/questions/60951490
复制相似问题