首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex来匹配由“”分隔的两位数集。

问Regex来匹配由“”分隔的两位数集。
EN

Stack Overflow用户
提问于 2020-09-22 18:32:19
回答 1查看 42关注 0票数 2

我试图匹配一个正则表达式来选择,

两个数字,后面跟着可选的“。后面跟着两个数字,后面跟着可选的“。后面跟着两个数字,后面跟着可选的“。后面跟着两位数。

例如,如果输入数据是:

代码语言:javascript
复制
12.45.7810
12345678
12.34.56.78
1.234.56.78
12.45.7816 

预期的匹配是:

代码语言:javascript
复制
12345678
12.34.56.78

我拼命想弄明白为什么以下是错误的:

代码语言:javascript
复制
^\d{2}\.*\d{2}\.*\d{2}\.*\d{2}$

我的理解是:

^是行的开始

后面是两个数字,后面是零个或多个.字符,

后面是两个数字,后面是零个或多个.字符,

后面是两个数字,后面是零个或多个.字符,

后面跟着两位数

然后是行尾$。

然而,这是像12.45.7816这样的匹配行

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-22 18:49:43

因为\.*匹配78和16之间的空字符串,所以12.45.7816匹配。

若要仅匹配所有数字对之间的点,或其他情况下根本不匹配点,可以使用

代码语言:javascript
复制
^\d{2}(?:(?:\.\d{2}){3}|\d{6})$

请参阅它的图

​

​

见regex演示

详细信息

  • ^ -字符串的开始
  • \d{2} -两位数
  • (?:(?:\.\d{2}){3}|\d{6}) -两种选择之一:
    • (?:\.\d{2}){3} -三个点的出现,后面跟着两个数字
    • | -或
    • \d{6} -六位数

  • $ -字符串的结尾
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64015745

复制
相关文章

相似问题

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