регулярка

APXOHT

Client
Регистрация
27.12.2013
Сообщения
881
Благодарностей
189
Баллы
43
Подскажите пож-та
Как в таком тексте
<li>Цвет
черный</li>

заменить перенос строки на пробел?

Проблема в том чтобы не затронуть прочий текст что не заключен в теги li

т.е. нужно зацепиться за <li>...</li> и в их границах потереть \r\n

На ум лезет прикручивать складирование - извлечение из списка с заменой но это последнее дело...
 

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
Вроде должно работать, не тестил:
Замена regex
(?<=<li>((?!</li>).)+){-String.Enter-}
на
{-String.Space-}
 
  • Спасибо
Реакции: APXOHT

APXOHT

Client
Регистрация
27.12.2013
Сообщения
881
Благодарностей
189
Баллы
43

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
А теперь потестил )
Моя регулярка заменяет только первый перенос строки, если он не один между <li> и </li>. Т.е. из этого:
<li>Цвет
черный
заменить</li>
получим:
<li>Цвет черный
заменить</li>
Чтоб заменило все переносы, надо добавить модификатор:
(?s)(?<=<li>((?!</li>).)+){-String.Enter-}
 
  • Спасибо
Реакции: APXOHT

APXOHT

Client
Регистрация
27.12.2013
Сообщения
881
Благодарностей
189
Баллы
43
А теперь потестил )
Моя регулярка заменяет только первый перенос строки, если он не один между <li> и </li>. Т.е. из этого:
<li>Цвет
черный
заменить</li>
получим:
<li>Цвет черный
заменить</li>
Чтоб заменило все переносы, надо добавить модификатор:
(?s)(?<=<li>((?!</li>).)+){-String.Enter-}
Не, все ровно меняет только первый раз...
 

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
Может выбрано заменять Первое вместо Все?
 

APXOHT

Client
Регистрация
27.12.2013
Сообщения
881
Благодарностей
189
Баллы
43

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
Работающий пример.
И просветите для интереса, что у вас было не так. )
 

Вложения

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
Ну не работает эта грёбаная замена! По крайней мере, если в перенос прямо в начале строки. Каждый грёбаный раз трахаюсь с этой говнофункцией, ищу на форуме, пробую так и этак... как же заколебало каждый раз с простейшими шагами целые исследования проводить, чтобы работало! Сейчас вот выбрал Trim Enter, пробелы и т.п. Но хер его знает, сколько времени я в следующий раз буду задрачивать отладчик PM и шарахаться по форуму, прежде чем грёбаный перенос строки будет надёжно удаляться. Повбывав бы!
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Прикладывайте пример на котором Trim у вас не работает.
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
работает :bk:
 

Вложения

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
а не лучше сделать замену по регулярке \s заменить на пробел у меня всегда работало
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
а можно примерчик в студию?
 

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