[英]Using anchors in python regex to get exact match
我需要验证由'v'加上正整数组成的版本号,而不需要其他任何东西,例如“v4”,“v1004”
我有
import re
pattern = "\Av(?=\d+)\W"
m = re.match(pattern, "v303")
if m is None:
print "noMatch"
else:
print "match"
但这不起作用! 例如,删除\\ A和\\ W将匹配v303,但也将匹配v30G
谢谢
非常直截了当。 首先,在您的模式上放置锚点:
"^patternhere$"
现在,让我们把模式放在一起:
"^v\d+$"
应该这样做。
我想你可能想要\\b
(单词边界)而不是\\A
(字符串的开头)和\\W
(非单词字符),你也不需要使用lookahead( (?=...)
)。
尝试: "\\bv(\\d+)"
如果需要捕获int, "\\bv\\d+"
如果不需要。
编辑 :您可能希望使用Python正则表达式的原始字符串语法r"\\bv\\d+\\b"
,因为"\\b"
是常规字符串中的退格符。
编辑2 :由于+
是“贪婪”,因此不需要或不需要尾随\\b
。
简单地使用
\bv\d+\b
或用^\\bv\\d+\\b$
括起来
完全匹配..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.