首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex -找到所有可以找到给定数字的组

Regex -找到所有可以找到给定数字的组
EN

Stack Overflow用户
提问于 2013-06-06 20:25:46
回答 4查看 55关注 0票数 3

我有一个这样的字符串:

代码语言:javascript
复制
:1-2-35:2-3-1:5-6-27456:35-2-11:9-5-6:1-5-2:

我想要得到所有包含数字2的组,字符串总是由3个数字组成的组,中间有破折号。

因此,我的正则表达式将返回以下内容:

代码语言:javascript
复制
1 => :1-2-35:
2 => :2-3-1:
3 => :35-2-11:
4 => :1-5-2:

我已经尝试过了,但没有成功::\d*2-|-2-|2-\d*:

谢谢你的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-06 20:29:33

您可以尝试这个正则表达式

代码语言:javascript
复制
[^:]*(?<=[-:])2(?=[-:])[^:]*

[^:]表示匹配除:之外的任何字符

:外,[^:]*将匹配0到许多字符

仅当后跟-:时,2(?=[-:])才会匹配2

只有前面是-:(?<=[-:])2才会匹配2

代码语言:javascript
复制
[^:]*\b2\b[^:]*
票数 5
EN

Stack Overflow用户

发布于 2013-06-06 20:31:31

如果组始终包含3个数字(和2个破折号),则可以使用如下正则表达式:

代码语言:javascript
复制
:(2-\d+-\d+|\d+-2-\d+|\d+-\d+-2)(?=:)

(请注意,根据您使用的语言的正则表达式实现,它可能会略有不同。)

另请参阅PHP中的。

票数 0
EN

Stack Overflow用户

发布于 2013-06-06 20:32:02

您可以使用以下命令:

代码语言:javascript
复制
(?<=:)(?:2-\d+-\d+|(?:\d+-){1,2}2\b[^:]*)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16962040

复制
相关文章

相似问题

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