簡體   English   中英

在python正則表達式中使用錨點來獲得完全匹配

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM