С URL, такие какRegex чтобы захватить URL до определенного символа
https://search.yahoo.com/search?p=Fetty+Wap&fr=fp-tts&
Я использую
pat = re.compile('<a href="(https?://.*?)".*',re.DOTALL)
в качестве шаблона поиска.
Я хочу выбрать любой URL-адрес, например, URL-адрес yahoo, но я хочу уловить URL-адрес до буквального ?
в действительном URL-адресе.
Другими словами, я хочу извлечь URL-адрес до ?
, зная, что все URL-адреса, которые я обрабатываю, не имеют символа ?
. В таком случае мне нужно захватить весь URL.
Вышеупомянутое регулярное выражение работает и извлекает URL-адрес, но доходит до конца URL-адреса. Как я могу заставить его остановиться на первом ?
, с которым он сталкивается, и продолжайте идти до конца, если он не встречает ?
Вы не можете добавить комментарий, который вы пытали? – Chet
из ОС импорта системы; системы ('ЦБС') \ п от URLLIB импорта urlopen, импорт повторно \ п # внешний вид для линий как Some Text \ п Count = 0 \ п погладить = re.compile (г '<а href = "(https?: // (. +? \? |. +?))". * ', re.DOTALL) \ n nh = urlopen (' http://www.yahoo.com ') \ n для строки в nh: \ n if re.search (pat, line): \ n count + = 1 \ n print count, re.search (pat, line) .group (1) \ n Please посмотрите на комментарий хотите, чтобы захватить якорный тег вытащить URL-адрес, но \ n только до? если есть один в url еще весь url \ n – saeed1r
извините, я не могу понять, как сделать разрыв строки. Я смотрел на форумах, пробовал
тег, но это не сработало, поэтому я добавил \ n, что не работал либо просто покажу вам конец строки, поэтому извините, пытаясь понять это. – saeed1r