Regex разбивает токен на две отдельные части - PullRequest
0 голосов
/ 21 февраля 2020

Мой Regex не соответствует всему этому токену как одному. Я не могу понять, почему. Он хранит 0 в другом индексе в списке, но мне нужно, чтобы x-0 совпадал как один токен.

pattern = re.compile(r'(\b\w\D\-\d\W\b)')

test = 'x-0'
matches = pattern.finditer(test)
tokens = []
for match in matches:
    tokens.append(match.group(0))

Выход

['x-', '0']

1 Ответ

0 голосов
/ 21 февраля 2020

Я не уверен, почему вы добавили \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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...