将所有字符与捕获组匹配,不包括捕获组

时间:2013-12-30 18:19:58

标签: regex

我有一个模式

blah_blah_blah_blah_19292_blah_m32.jpg

我希望将所有内容与_mXX匹配,同时排除_mXX。

我有^(.*[_m]),但这是包容性的。似乎无法将捕获组排除在外。我错过了什么?

rubular link http://www.rubular.com/r/0Ls12Z6GH7

1 个答案:

答案 0 :(得分:2)

你可以使用积极的先行:

/^.*?(?=_m[0-9]+)/

将在输入字符串中匹配blah_blah_blah_blah_19292_blah

在线演示:http://www.rubular.com/r/abgW0Q1gjX

Referece:Lookarounds in regex

从上面的链接引用:

  

q(?=u)匹配一个后跟一个u的q,而不会使u成为匹配的一部分。积极的先行构造是一对括号,左括号后跟一个问号和一个等号。