помогите с регуляркой

andnik76

Client
Регистрация
24.09.2016
Сообщения
8
Благодарностей
1
Баллы
3
Добрый день.
хочу спарсить
ctr1
ctr2
ctr3
ctr4
но не могу создать регулярку под html код c переносами.

</p>
<ul>
<li>ctr1</li>
<li>ctr2</li>
<li>ctr3</li>
<li>ctr4</li>

</ul>
</div>

просто за "ul" зецепиться нельзя, т.к. в коде они еще присутствуют.
кусок приведенного кода больше не повторяется в общем коде
 

Санёк

Client
Регистрация
30.08.2013
Сообщения
325
Благодарностей
111
Баллы
43
Может так
(?<=<ul>)\n<li>[\w\W]*?(?=</ul>)
 
  • Спасибо
Реакции: andnik76

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 413
Баллы
113
Первым действием \n меняем на пробел например.
Вторым меняем два пробела на один.
А дальше имея код уже в строке - пользуемся регулярками без переносов.
Если же в тексте все же нужно сохранить переносы - то менять в первом действии можно на <br> (или любую другую метку) например - и после проведения парсинга - заменить метку обратно на перенос.
Но, но это как вариант - я бы решал именно так (но уверен что есть методы и попроще более подходящие).
 
  • Спасибо
Реакции: andnik76

andnik76

Client
Регистрация
24.09.2016
Сообщения
8
Благодарностей
1
Баллы
3
Может так
(?<=<ul>)\n<li>[\w\W]*?(?=</ul>)
у тебя нет тега </p>
спасибо всем
подобрал вот так
(?<=</p>\s*<ul>)[\w\W]*?(?=</ul>)
вариант BAZAg с удалением лишних переносов и пробелов, перед началом парсинга,показался более универсальным
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)