Ответ 1
Довольно просто. Сначала поставьте привязки на свой шаблон:
"^patternhere$"
Теперь сопоставьте шаблон:
"^v\d+$"
Это должно сделать это.
Мне нужно проверить номер версии, состоящий из "v" плюс положительный int, и ничего больше например, "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+)\b"
, если вам нужно захватить int, "\bv\d+\b"
, если вы этого не сделаете.
Изменить. Вероятно, вы хотите использовать синтаксис сырой строки для регулярных выражений Python, r"\bv\d+\b"
, так как "\b"
является символом обратного пространства в регулярной строке.
Просто используйте
\bv\d+\b
Или приложил его к ^\bv\d+\b$
чтобы полностью соответствовать ему.