首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用通配符的Java验证RegEx *

使用通配符的Java验证RegEx *
EN

Stack Overflow用户
提问于 2020-02-24 13:29:31
回答 1查看 143关注 0票数 1

我正在尝试使自己的Regex与*通配符匹配IP,目前我自己的正则表达式是:

^((((250-5|20-4|010-9?)\){3}(250-5|20-4|010-9?))|(((250-5|20-4|010-9?).){1,3}\))$

但是它不像我所希望的那样起作用,我想在这种情况下给出正则表达式。

192.168.1.1 ->有效

192.168.1.* ->有效

192.168.**->有效

192.*->有效

192.168.*.1 ->无效

192.*.1.1 ->无效

192.**.1->无效

*.168.1.1 ->无效

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-24 13:36:48

一种选择是使用正前瞻来断言下面的3个点带有3位数字或一个*

匹配时,可以将*作为最后一部分和可选部分。

代码语言:javascript
复制
^(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(?=(?:\.(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|\*)){3}$)(?:\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]))*(?:\.\*)*$

Regex演示

另一种选择是列出所有备选方案:

代码语言:javascript
复制
^(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.\*|(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.\*\.\*|\*\.\*\.\*)$

Regex演示

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60376990

复制
相关文章

相似问题

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