正则表达式 - 忽略何时存在某个前缀

时间:2015-08-29 00:39:47

标签: regex

我想匹配字母v之后的任何数字。

所以,

  • v: 123匹配123;
  • v 123匹配123;
  • v123匹配123

但是当v后面有任何字母时,我想忽略任何比赛。

xv: 123一样,不能与任何内容匹配。

我正在使用这种模式:

/v[\s\pP]*(\d+)/

但它不会忽略somethingbehindv: 123时的情况。

2 个答案:

答案 0 :(得分:1)

另一种解决方案是使用negative look-behind assertion。这是一个扩展的正则表达式,可能不支持您正在使用的任何语言或平台。它看起来像这样:

/(?<!\S)v[\s\pP]*(\d+)/

如果任何非空白字符(\S)在v之前,那么这基本上会阻止模式匹配。当然,如果不允许其他字符,你可以调整它。

答案 1 :(得分:0)

使用word boundary \b解决问题:

/\bv[\s\pP]*(\d+)/