首页 > 解决方案 > 正则表达式隔离网址但不隔离电子邮件

问题描述

我对正则表达式真的很陌生,但我有一项工作任务需要我完成以下任务,这让我发疯。任何帮助,将不胜感激

我必须使用正则表达式将帖子过滤到聊天中以审查除电子邮件之外的所有链接。到目前为止,我有以下似乎适用于大多数形式的 URL,但它也可以捕获电子邮件。

([--:\w?%&+~#=]*\.[a-z]{2,4}\/{0,2})((?:[?&](?:\w+)=(?:\w+))+|[--:\w?@%&+~#=]+)?

这是一个链接,显示我的问题:https ://regexr.com/3tg56

标签: regex

解决方案


一种可能性是向后查找空格(或行首):

(?<= |^)([--:\w?%&+~#=]*\.[a-z]{2,4}\/{0,2})((?:[?&](?:\w+)=(?:\w+))+|[--:\w?@%&+~#=]+)?
^^^^^^^^

https://regex101.com/r/upBNT0/1


推荐阅读