Я хочу сопоставить строку URL с моим шаблоном регулярных выражений: r'.+'.Я ожидаю, что этот шаблон полностью соответствует строке URL, но этого не происходит.Я получаю следующий вывод:
r'.+'
Вывод:
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'.+' для моего шаблона?
returnurl=%2fusers%2fstory%2fcurrent
Код:
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)
Печать самого объекта совпадения не отображает полное совпадение.Если вы напечатаете match.group(0) вместо match, вы увидите, что ваше регулярное выражение соответствует всей строке.
match.group(0)
match