Любой символ включая перенос

Статус
В этой теме нельзя размещать новые ответы.
'a[^>]+href=' тоже довольно странно писать... тем более между ними запросто может быть таргет_бланк
Как раз наоборот, это правильный вариант в данном случае, так как комбинация [^>]+ как раз таки и гарантирует, что между а и href= может быть не только пробел, а и класс, и стили и всё что угодно кроме закрывающей угловой скобки .

Как сделать '(.*?)' если отсутствуют слова из списка?
А вот этого вопроса я не понял, какие слова из списка? Приведите лучше пример что есть и что хотите получить, так проще понять что вам нужно.
 
Есть допустим 'хttp://domain.com/slovo1/' и xttp://domain.com/slovo2/ и далее. Нужно проигнорировать ссылку в теле которой есть слово2, а остальные собрать.
На счет a[^>]+href=' . Как только использую эту конструкцию, не работает. х.з. почему.
 
ИМХО я бы сначало собрал все ссылки а потом рассортировывал по тому что надо исключал со словами, собирал с картинками и тд.
 
меняется последовательность и процесс раскладывается на этапы а найти универсальную регулярку не всегда возможно особенно если контент на страницах переменный
 
Снова проблема с этой регуляркой
PHP:
re.compile(r'(\href=(\"|\'|\.\.)([^>]*?)(\"|\'|(class=))(.*?)><img)', re.S)
Тестирую и не понимаю, почему в таком случае:
HTML:
        <tr>
            <td valign="top" class="class">
            <a href="http://www.domain.com/url1" target="_new" rel="nofollow"><img style="border: 1px solid #000000;" name="name" id="id" src="http://domain.com/1.jpg" width="400" height="500" /></a>
            </td>
            <td valign="top" class="class">
            <span class="title">title</span><br>
            text<span class="new">text</span> <br>
            <br>
            <a href="http://www.domain.com/url2" class="class"  title="title">title</a>, <a href="http://www.domain.com/url3" class="class"  title="title">title</a>  <br><br>
            </td>
регулярка собирает "Для просмотра ссылки Войди или Зарегистрируйся" а не "Для просмотра ссылки Войди или Зарегистрируйся".
 
У меня так:

d44b3cdbb7e74ed1536544a126805c5c.png
 
Блин, я так и не разобрался с этой софтиной. Посмотрел немного и снес:(
Если, то что выделено желтым, то так и задумано. Потом линка нормально забирается из этого куска.
Код:
                rex = re.compile(r'(\href=(\"|\'|\.\.)([^>]*?)(\"|\'|(class=))(.*?)><img)', re.S)
        urls = [c[2] for c in rex.findall(s)]
Но в полевых условиях это не так.
Погоняв немного скрипт, обнаружил что иногда отрабатывет как надо. Т.е. "Для просмотра ссылки Войди или Зарегистрируйся" тоже иногда забирает...
Мистика, или я снова не догоняю.
 
Если, то что выделено желтым, то так и задумано. Потом линка нормально забирается из этого куска.
Я знаю, я просто показываю, что работает именно так, как нужно. Только ввиду того, что у меня программа материлась на начало регулярки, а именно на \h, то я удалил слеш, может и вам стоит?
 
Не помню уже зачем ставил этот слеш:) Его исчезновение никак не отразилось на работоспособности регулярки...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху