input = 'susaya https://[email protected]/de/sekd/sho/project1/first_project'
url_match = re.match("\s*susaya\s+([^ ]+)", input)
Когда я пытаюсь напечатать url_match, я получаю адрес памяти.
print url_match
None
<_sre.SRE_Match object at 0x5f630cs48e40>
Что дает регулярное выражение ("\s*susaya\s+([^ ]+)
?
Я получаю None
при попытке печати, потому что url_match не совпадает?
Я использую python2.7. Спасибо.
И это не ошибка, это объект соответствия.
Да! Я редактировал. Спасибо.
re.match
не возвращает строку, он возвращает объект соответствия. Вызов group(i)
для объекта соответствия возвращает i-ю группу захвата, при этом 0-я группа захвата представляет собой полное совпадение.
>>> input = "susaya https://[email protected]/de/sekd/sho/project1/first_project"
>>> url_match = re.match(r"\s*susaya\s+([^ ]+)", input)
>>> url_match.group(0)
'susaya https://[email protected]/de/sekd/sho/project1/first_project'
Шаблон "\s*susaya\s+([^ ]+)"
соответствует нулю или нескольким пробелам, за которыми следует «сусая», за которой следует один или несколько пробелов, за которыми следует группа захвата из одного или нескольких символов, которые не являются пробелами.
Проголосовали за, хотя лучше всего было бы также использовать r"raw string"
для регулярного выражения.
Это правда - я просто скопировал код вопроса. Фиксированный. Спасибо что подметил это.
Может ли кто-нибудь помочь мне с моим вопросом № 1? это поможет массово отладить проблему. Спасибо.
Добавлено объяснение шаблона регулярного выражения.
Первая строка недопустима для Python. Вы имеете в виду
input = 'susaya https://[email protected]/de/sekd/sho/project1/first_project'
?