正则表达式匹配除一个以外的所有网站

Posted

技术标签:

【中文标题】正则表达式匹配除一个以外的所有网站【英文标题】:Regex match all websites except for one 【发布时间】:2021-06-06 06:58:51 【问题描述】:

我正在尝试创建一个正则表达式查询来匹配除一个之外的所有可能的网站。

(https?:\/\/)?+(www)?([^:\/]+\.)?mysite\.[a-zA-Z]1,3

不幸的是,下面的示例仅适用于搜索该域。

我尝试添加 (!mysite) 但这不起作用。有什么想法吗?

游乐场 https://regex101.com/r/Q4QmVZ/1

【问题讨论】:

【参考方案1】:

您可以使用否定的lookbehind排除您的网站并执行以下操作:

\b(?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9-]+(?<!\bmysite\b)\.[a-zA-Z]2,4\b

【讨论】:

@Alex 小心,那个lookbehind 也会取消amysite.com 哦.. 这很糟糕。我还尝试添加 ^mysite$,但这似乎无法使其完全匹配 很好,我将其编辑为完全匹配【参考方案2】:

通过消极的展望,您可以排除您不想要的域。

\b(https?:\/\/)?(www\.)?(?!mysite)[\w-]+\.[a-z]2,3\b

它通过了所有给定的测试,但不确定其他测试。

【讨论】:

以上是关于正则表达式匹配除一个以外的所有网站的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式:元字符,量词

正则表达式的学习

如何用正则表达式过滤除数字以外的其他字符?

正则表达式简单小结

Shell 正则表达式

正则表达式 c# 表达式验证除零以外的所有数字