[英]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.