Я хочу сопоставить два URL в Python с помощью регулярных выражений, но следующий код дает ошибку.Я не могу понять почему - PullRequest
0 голосов
/ 17 декабря 2018
input = 'susaya https://sousfs@sls.sus.uk/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> 
  1. Что такое вывод регулярного выражения ("\s*susaya\s+([^ ]+)?

  2. Я получаю None, когда пытаюсь печатать, потому что url_match не совпадает?

Я использую python2.7.Спасибо.

1 Ответ

0 голосов
/ 17 декабря 2018

re.match не возвращает строку, он возвращает объект соответствия.Вызов group(i) для объекта сопоставления возвращает i-ю группу захвата, причем 0-я группа захвата является полным совпадением.

>>> input = "susaya https://sousfs@sls.sus.uk/de/sekd/sho/project1/first_project"

>>> url_match = re.match(r"\s*susaya\s+([^ ]+)", input)
>>> url_match.group(0)
 'susaya https://sousfs@sls.sus.uk/de/sekd/sho/project1/first_project'

Шаблон "\s*susaya\s+([^ ]+)" соответствует нулю или более пробелов, за которым следует "susaya"", за которым следуют один или несколько пробелов, за которыми следует группа захвата из одного или нескольких символов, которые не являются пробелами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...