Я не уверен, почему вы добавили \D
и \W
, чтобы соответствовать шаблону выше. После x
нет не-di git символа, который не является -
, и после 0
нет не-alphanumeri c символа, поэтому вы можете пропустить \D
и \W
. Другой вариант - использовать звездочку (*
), как показано ниже. Дайте мне знать, поможет ли это:
import re
pattern = re.compile(r'(\b\w(\D*)-\d(\W*)\b)')
test = 'x-0'
tokens = pattern.findall(test)