首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式用于查找句子中的域,而不是IP地址

正则表达式用于查找句子中的域,而不是IP地址
EN

Stack Overflow用户
提问于 2019-04-15 22:07:42
回答 2查看 191关注 0票数 1

我正在尝试编写一个正则表达式,它将匹配句子中的域。

我发现this post非常有用,并帮助我创建了以下匹配域,但不幸的是,它也匹配我不想要的IP地址:

代码语言:javascript
复制
((?!-))(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})

我想要更新我的表达式,以便仍然可以找到以下内容:在句子中,在括号中,等等:

代码语言:javascript
复制
www.example.com
subdomain.example.com
subdomain.example.co.uk

但不是:

代码语言:javascript
复制
192.168.0.0
127.0.0.1

有没有办法做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-16 01:05:42

我们可以使用一个简单的先行查询,只排除数字和点的组合:(?![\d.]+)

代码语言:javascript
复制
(?![\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})

Demo

票数 2
EN

Stack Overflow用户

发布于 2019-04-18 16:30:52

@wp78de的答案是正确的,但是它不会检测到以数字开头的域名,即123reg.com

因此删除正则表达式中的第一个组,如下所示

代码语言:javascript
复制
((?!-))(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})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55691023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档