Почему мой шаблон регулярного выражения Python не соответствует всей строке? - PullRequest
0 голосов
/ 29 сентября 2019

Я хочу сопоставить строку URL с моим шаблоном регулярных выражений: r'.+'.Я ожидаю, что этот шаблон полностью соответствует строке URL, но этого не происходит.Я получаю следующий вывод:

Вывод:

url string: https://stackoverflow.com/users/signup?ssrc=head&returnurl=%2fusers%2fstory%2fcurrent
matched string: <re.Match object; span=(0, 85), match='https://stackoverflow.com/users/signup?ssrc=head&>

Очевидно, что совпадение исключает часть строки URLконец.Мой шаблон не соответствует части returnurl=%2fusers%2fstory%2fcurrent строки URL.Почему это происходит?Должен ли я использовать что-то другое, чем r'.+' для моего шаблона?

Код:

def getQueryParameters(url):
    print(f"url string: {url}")
    pattern = re.compile(r'.+')
    match = pattern.search(url)
    print(f'matched string: {match}')

if __name__ == '__main__':
    url = "https://stackoverflow.com/users/signup?ssrc=head&returnurl=%2fusers%2fstory%2fcurrent"
    getQueryParameters(url)

1 Ответ

3 голосов
/ 29 сентября 2019

Печать самого объекта совпадения не отображает полное совпадение.Если вы напечатаете match.group(0) вместо match, вы увидите, что ваше регулярное выражение соответствует всей строке.

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