re.match()
только совпадения на начало строки. Используйте re.search()
вместо:
re.search(r"\.aspx\?.*cp=", 'page.aspx?cpm=549&cp=168')
Демо:
>>> import re
>>> re.search(r"\.aspx\?.*cp=", 'page.aspx?cpm=549&cp=168')
<_sre.SRE_Match object at 0x105d7e440>
>>> re.search(r"\.aspx\?.*cp=", 'page.aspx?cpm=549&cp=168').group(0)
'.aspx?cpm=549&cp='
Обратите внимание, что любые re
функции, которые принимают шаблон, принимает строку и будет называть re.compile()
для вас (который кэширует результаты компиляции). Вам нужно всего лишь использовать re.compile()
, если вы хотите сохранить скомпилированное выражение для повторного использования, в этот момент вы можете позвонить pattern.search()
на нем:
pattern = re.compile(r"\.aspx\?.*cp=")
pattern.search('page.aspx?cpm=549&cp=168')
Я злюсь сам. =) Я забыл метод поиска. Хорошее наблюдение, я храню шаблон для повторного использования. –