regex - 正则表达式隔离网址但不隔离电子邮件
问题描述
我对正则表达式真的很陌生,但我有一项工作任务需要我完成以下任务,这让我发疯。任何帮助,将不胜感激
我必须使用正则表达式将帖子过滤到聊天中以审查除电子邮件之外的所有链接。到目前为止,我有以下似乎适用于大多数形式的 URL,但它也可以捕获电子邮件。
([--:\w?%&+~#=]*\.[a-z]{2,4}\/{0,2})((?:[?&](?:\w+)=(?:\w+))+|[--:\w?@%&+~#=]+)?
这是一个链接,显示我的问题:https ://regexr.com/3tg56
解决方案
一种可能性是向后查找空格(或行首):
(?<= |^)([--:\w?%&+~#=]*\.[a-z]{2,4}\/{0,2})((?:[?&](?:\w+)=(?:\w+))+|[--:\w?@%&+~#=]+)?
^^^^^^^^
推荐阅读
- jelastic - Elasticsearch 容器为空
- ios - 如何在tableview中搜索数据?
- mongodb - 在 .FindOne 的 mongo-go-driver 中创建过滤器
- vba - 作为 ByRef 参数的类属性不起作用
- javascript - JS设置HTML元素的属性
- java - 在没有“WRITE_SETTINGS”权限的情况下单击图像时如何自动增加屏幕亮度
- postgrest - 使用 JSON 的 Postgrest OR 查询
- javascript - 针对 Web 开发的特定数据结构的建议
- c++ - 通过“值模板参数”与常规数组在堆栈中分配内存
- css - 在css中混合颜色时忽略某些元素