Показать сообщение отдельно
Старый 22.11.2016, 13:12
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 1  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
По умолчанию RegExp банально, нужно разрешить пробел между символами

Я что-то уже туплю. Написал за свою практику кучу регулярок, а тут тормознулся на такой мелочи
В общем, нужно распарсить html страницу, на которой есть списки со ссылками.
Так вот, есть ссылки вида <li><a href="/something/somethingelse/">Что-то</a>
Таких ссылок в коде страницы дофига, и все они ведут в подменю сайта. Нужно в мобильном приложении собрать это же меню с такой же структурой.
Загвоздка в том, что ссылки не всегда написаны именно так. Иногда там есть пробелы, любезно забытые разработчиком в php коде)
Собственно, ссылка иногда выглядит вот так: <li > <a href="/something/somethingelse/">
Пишу регулярку с look ahead и look behind
Код AS3:
var regExp:RegExp = /(?<=\<li><a href=\"\/)(.*?)(?=\<\/a><\/li>)/g;
var result:Array = pageText.match(regExp);
Она отлично находит ссылки первого вида (без пробелов).
А вот такая регулярка, находит второй вид
Код AS3:
var regExp:RegExp = /(?<=\<li > <a href=\"\/)(.*?)(?=\<\/a><\/li>)/g;
Видимо я действительно дико туплю и нужно пойти отдохнуть, но не могу придумать как в лук ахэд мне воткнуть любое количество пробелов
Код AS3:
var regExp:RegExp = /(?<=\<li\s*>\s*<a href=\"\/)(.*?)(?=\<\/a><\/li>)/g;
Такой вариант, не работает. Не работает так же если этот символ пробела обернуть в символьный класс или в диапазон

п.с. Доступа к исходному коду сайта нет
__________________
Ко мне можно и нужно обращаться на ты)