我正在尝试编写一个正则表达式,它将匹配句子中的域。
我发现this post非常有用,并帮助我创建了以下匹配域,但不幸的是,它也匹配我不想要的IP地址:
((?!-))(xn--)?[a-z0-9][a-z0-9-_]{0,61}[a-z0-9]{0,1}\.(xn--)?([a-z0-9\._-]{1,61}|[a-z0-9-]{1,30})我想要更新我的表达式,以便仍然可以找到以下内容:在句子中,在括号中,等等:
www.example.com
subdomain.example.com
subdomain.example.co.uk但不是:
192.168.0.0
127.0.0.1有没有办法做到这一点?
发布于 2019-04-16 01:05:42
我们可以使用一个简单的先行查询,只排除数字和点的组合:(?![\d.]+)
(?![\d.]+)((?!-))(xn--)?[a-z0-9][a-z0-9-_]{0,61}[a-z0-9]{0,1}\.(xn--)?([a-z0-9\._-]{1,61}|[a-z0-9-]{1,30})发布于 2019-04-18 16:30:52
@wp78de的答案是正确的,但是它不会检测到以数字开头的域名,即123reg.com
因此删除正则表达式中的第一个组,如下所示
((?!-))(xn--)?[a-z0-9][a-z0-9-_]{0,61}[a-z0-9]{0,1}\.(xn--)?([a-z0-9\._-]{1,61}|[a-z0-9-]{1,30})https://stackoverflow.com/questions/55691023
复制相似问题