将字符串与可变位置中的固定子字符串匹配

时间:2018-04-04 08:53:05

标签: regex expression

有:

我想在我的电子邮件服务器中创建一个过滤器,该过滤器匹配任何包含来自特定域的任何URL(使用http或https协议)的消息(比如说domain.org)。我希望它能匹配以下内容:

这里的问题是这些字符串可以在字符串的任何随机位置包装在消息正文中。更糟糕的是,当字符串被包装时,在行尾之前会添加一个等号,所以我需要它能够匹配这些字符串:

ht= tps://thisisanexample.domain.org

https://thisisane= xample.domain.org

https://thisisanexample.do= main.org

我提出了一个简单(但很大)的解决方案,但我认为必须有一个比我更优雅的解决方案:

/h[=[:cntrl:]]*t[=[:cntrl:]]*t[=[:cntrl:]]*p[=[:cntrl:]]*s?[=[:cntrl:]]*:[=[:cntrl:]]*\/[=[:cntrl:]]*\/[=[:cntrl:]]*[-+_@&%$#|()=?¿:;,.,çÇ^[:cntrl:][:alnum:]\[\]\{\}\*\\]*[=[:cntrl:]]*.[=[:cntrl:]]*d[=[:cntrl:]]*o[=[:cntrl:]]*m[=[:cntrl:]]*a[=[:cntrl:]]*[=[:cntrl:]]*i[=[:cntrl:]]*n[=[:cntrl:]]*.[=[:cntrl:]]*o[=[:cntrl:]]*r[=[:cntrl:]]*g/

我一直在环顾四周,但由于我对正则表达式的了解不仅仅是简单的查询,我找不到任何我理解的方法来改进我的解决方案。

非常感谢您提前。 问候。

2018/04/11编辑:感谢所有尝试过的人,但所提出的解决方案并不符合我所期待的优雅和可读性的要求。我正在寻找捕获除了等号返回字符串以及对捕获的第一次搜索结果执行Web地址字符串搜索之外的所有内容。这是一个可行的想法吗?

0 个答案:

没有答案