Привет, ребята, я действительно пытаюсь понять регулярные выражения при очистке сайта, я использовал его в своем коде достаточно, чтобы вытащить следующее, но я застрял здесь.Мне нужно быстро схватить это:
http://www.example.com/online/store/TitleDetail?detail&sku=123456789
от этого:
('<a href="javascript:if(handleDoubleClick(this.id)){window.location=\'http://www.example.com/online/store/TitleDetail?detail&sku=123456789\';}" id="getTitleDetails_123456789">\r\n\t\t\t \tcheck store inventory\r\n\t\t\t </a>', 1)
Вот где я запутался.есть идеи?
Редактировать: номер артикула меняется в зависимости от продукта, поэтому в этом проблема для меня
http://www\.example\.com/online/store/TitleDetail\?detail&sku=\d+
используйте группу \ d с "Greedy" +, чтобы квалифицировать любое целочисленное значение в поле sku
http://txt2re.com/ может помочь вам
, если всегда есть 9 цифр
http://www.example.com/online/store/TitleDetail?detail&sku=[0-9]{9}
при наличии произвольного числа цифр:
http://www.example.com/online/store/TitleDetail?detail&sku=[0-9]*
более общий:
http*?sku=[0-9]*
(«in *» означает, что сначала он найдет более короткие совпадения, поэтому вероятность найти совпадение с несколькими URL-адресами будет меньше)
изменить: [0-9]. не [1-9]
pattern = re.compile(r"window.location=\\'([^\\]*)") haystack = r"""<a href="javascript:if(handleDoubleClick(this.id)){window.location=\'http://www.example.com/online/store/TitleDetail?detail&sku=123456789\';}" id="getTitleDetails_123456789">\r\n\t\t\t\tcheck store inventory\r\n\t\t\t</a>""" url = re.search(pattern, haystack).group(1)
Для этого вам не нужны регулярные выражения, просто используйте строковые методы:
result = html[0].split("window.location='")[1].split("'")[0]