RegExp дважды?
Вот такая строка:
<tr><td class="type">страна</td><td class=""><a href="http://localhost">США</a>, <a href="http://localhost">Россия</a></td></tr> вместо localhost может быть любой другой адрес, стран может быть от 0 и до фига... надо чтоб названия стран попали в одну из групп регэкспа. Код:
(?<=страна.*)(/">)(.*?)(<)<br> Вобщем - как выполнить регэксп Код:
(/">)(.*?)(<) |
Цитата:
В вашем же случае лучше использовать DOM-методы, ибо парсить регулярками innerHTML дело неблагодарное, innerHTML в разных браузерах разный. |
да я тоже уверен, что можно... просто не могу найти, КАК.
а насчет остального - требуется именно регэксп. |
Может сначала удалить все теги:
.replace(/<\/?[^>]+>/g, '') ? |
Просто то, что слева, будет попадать в результаты поиска.
|
так ведь строка то у меня не одна. мне надо сначала найти строку содержащую слово страна, а потом уже - отсеивать названия стран...
да и зачем теги удалять? я по ним и ориентируюсь в этом регэкспе. вот скажем два, друг за другом прокатило б, но больно некрасиво и неэкономично: 1. (<tr><td class="type">страна.*) 2. (/">)(.*?)(<) вопрос в том, как их сляпать в одну строку, чтоб все было одним запросом? |
Цитата:
|
Цитата:
|
Цитата:
а почему бы не включить (?<=страна.*) в результат, т.е. не использовать просмотр назад |
не совсем понял... т.е. как это "включить (?<=страна.*) в результат"?
вот это - "?<=" вообще не обрабатывается в трансляторе регэкспов. у меня что получается: одним регэкспом я могу ИЛИ выдернуть строку со словом "страна", ИЛИ выдернуть все содержимое тегов (/">)(.*?)(<) из всего документа. как я заметил - использование регэкспа вызывает всплеск загрузки процессора, поэтому использовать несколько штук подряд не очень бы хотелось, вот и ищу способ сделать все за один раз, одним запросом. |
Часовой пояс GMT +3, время: 13:51. |