【发布时间】:2021-08-09 16:53:05
【问题描述】:
我需要用正则表达式查找不以字符串“http”开头的域名。例如:
- https://domain1.com -> 不匹配
- http://domain2.com -> 不匹配
- domain3.com -> 匹配
- domain4.co.uk -> 匹配
我找到了一个几乎可以做到的正则表达式:
(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]{,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}
但它也检测到“https://domain1.com”
给出的示例:
https://regex101.com/r/DjDBrx/1/
在本例中,我想避免使用“https://domain1.com”
任何帮助将不胜感激。
【问题讨论】:
-
您是否在验证完整的字符串?还是从较长的文本中提取?
-
欢迎来到 SO!你想要
/^(?!http)/还是/\b(?!http)/?{,61}和{2,6}我看不懂,而且你的模式里面也没有http,所以好像和你写的规范没有关系。 -
@WiktorStribiżew 我从较长的文本中提取
-
我会使用
\b(?<!https:\/\/)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}\b之类的东西,一个带有单词边界的后视。 -
@WiktorStribiżew 完成!感谢您的帮助正则表达式老板:)
标签: regex