【发布时间】:2017-04-26 00:23:57
【问题描述】:
我必须禁用用户在 cmets 中编写的所有链接,除了一个指定的链接(假设在这个例子中它是 specified-link.com)。
当我为此案例编写正则表达式时,我正在查看用户编写包含最流行 tld 字符串的字符串的情况:.com、.net、.org... 和字符串 http 和 https
我在这种情况下的正则表达式如下所示:
@([^\s]*((\\.com)|(http)|(https))[^\s]*)@
这两种情况我都忘记了:
1) .CoM 等大写组合
2) 我必须显示包含 specified-link.com 链接的链接。
另外,在隐藏链接时我还需要寻找其他情况吗?
我已经尝试并用谷歌搜索,但我无法重构我的正则表达式来查找这两种情况。应该如何掩盖这种情况?
【问题讨论】:
-
我刚刚发现我必须将 (?i) 放入正则表达式中以使其不区分大小写。我必须把它放在哪里才能使整个正则表达式不区分大小写,而不仅仅是它的一部分?
-
我认为遍历所有链接(使用简单的正则表达式)然后禁用每个链接更容易,除非它被允许(使用另一个简单的正则表达式)。
-
正则表达式在哪里使用?
http|https可以是https?。
标签: regex regex-negation