【问题标题】:disable links except one link regex禁用除一个链接正则表达式之外的链接
【发布时间】:2017-04-26 00:23:57
【问题描述】:

我必须禁用用户在 cmets 中编写的所有链接,除了一个指定的链接(假设在这个例子中它是 specified-link.com)。

当我为此案例编写正则表达式时,我正在查看用户编写包含最流行 tld 字符串的字符串的情况:.com、.net、.org... 和字符串 httphttps

我在这种情况下的正则表达式如下所示:

@([^\s]*((\\.com)|(http)|(https))[^\s]*)@

这两种情况我都忘记了:
1) .CoM 等大写组合
2) 我必须显示包含 specified-link.com 链接的链接。

另外,在隐藏链接时我还需要寻找其他情况吗?

我已经尝试并用谷歌搜索,但我无法重构我的正则表达式来查找这两种情况。应该如何掩盖这种情况?

【问题讨论】:

  • 我刚刚发现我必须将 (?i) 放入正则表达式中以使其不区分大小写。我必须把它放在哪里才能使整个正则表达式不区分大小写,而不仅仅是它的一部分?
  • 我认为遍历所有链接(使用简单的正则表达式)然后禁用每个链接更容易,除非它被允许(使用另一个简单的正则表达式)。
  • 正则表达式在哪里使用? http|https 可以是 https?

标签: regex regex-negation


【解决方案1】:

你可以使用

@(?:https?:\/\/)?(?:www\.)?specified-link\.com[^\s]*@

https://www. 是可选的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多