我想匹配字母v
之后的任何数字。
所以,
v: 123
匹配123
; v 123
匹配123
; v123
匹配123
。但是当v
后面有任何字母时,我想忽略任何比赛。
像xv: 123
一样,不能与任何内容匹配。
我正在使用这种模式:
/v[\s\pP]*(\d+)/
但它不会忽略somethingbehindv: 123
时的情况。
答案 0 :(得分:1)
另一种解决方案是使用negative look-behind assertion。这是一个扩展的正则表达式,可能不支持您正在使用的任何语言或平台。它看起来像这样:
/(?<!\S)v[\s\pP]*(\d+)/
如果任何非空白字符(\S
)在v
之前,那么这基本上会阻止模式匹配。当然,如果不允许其他字符,你可以调整它。
答案 1 :(得分:0)
使用word boundary \b
解决问题:
/\bv[\s\pP]*(\d+)/