我有一个像这样的字符串:
:1-2-35:2-3-1:5-6-27456:35-2-11:9-5-6:1-5-2:
Run Code Online (Sandbox Code Playgroud)
我想得到包含数字2
的所有组.字符串总是由3个数字组成,它们之间有一个短划线.
所以我的正则表达式将返回:
1 => :1-2-35:
2 => :2-3-1:
3 => :35-2-11:
4 => :1-5-2:
Run Code Online (Sandbox Code Playgroud)
我试过这个没有成功: :\d*2-|-2-|2-\d*:
谢谢你的帮助.
你可以试试这个正则表达式
[^:]*(?<=[-:])2(?=[-:])[^:]*
Run Code Online (Sandbox Code Playgroud)
[^:] 意味着匹配任何字符除外 :
[^:]* 将匹配0到多个字符除外 :
2(?=[-:])只有在跟着-或者后面才会匹配2:
(?<=[-:])2将匹配2只有它前面-或:
要么
[^:]*\b2\b[^:]*
Run Code Online (Sandbox Code Playgroud)