Что нового

RegExp Убрать переносы между тегами

Пост номер 5 был отмечен как лучший ответ.

mef-t

Осваивающий
Сообщения
306
Репутация
30
Всем привет.
Просьба подсказать, как оптимально убрать переносы строк между тегами <p>...</p> (заменить пробелами).
Пример текста:
<p>1. Назначение</p> документа
<p>Инструкция
пользователя включает
1
2
3</p>
<p>2. Термины и сокращения</p>
<p>В данном разделе
приведены Термины и сокращения</p>
<p>Таблица 1. Перечень терминов и сокращений</p>
Необходимо получить
<p>1. Назначение</p> документа
<p>Инструкция пользователя включает 1 2 3</p>
<p>2. Термины и сокращения</p>
<p>В данном разделе приведены Термины и сокращения</p>
<p>Таблица 1. Перечень терминов и сокращений</p>
 

xXx

Меценат
Меценат
Сообщения
200
Репутация
70
Код:
$sStr = '<p>1. Назначение</p> документа' & @CRLF & _
        '<p>Инструкция' & @CRLF & _
        'пользователя включает' & @CRLF & _
        '1' & @CRLF & _
        '2' & @CRLF & _
        '3</p>' & @CRLF & _
        '<p>2. еще слова</p>' & @CRLF & _
        '<p>В данном разделе' & @CRLF & _
        'приведены Термины и сокращения</p>' & @CRLF & _
        '<p>Таблица 1. Перечень терминов и сокращений</p>'

$sStr = StringRegExpReplace($sStr, '(?i)\R(?=[^<]+?</p>)', ' ')
MsgBox(262144, Default, '[' & $sStr & ']') ; <<< П Р О В Е Р К А >>>
 
Автор
mef-t

mef-t

Осваивающий
Сообщения
306
Репутация
30
Такое решение уже есть, но спасибо.
Я усложню пример.
Код:
$sStr = '<p>1. Назначение</p> документа' & @CRLF & _
        '<p>Инструкция' & @CRLF & _
        'пользователя включает' & @CRLF & _
        '<div>1' & @CRLF & _
        '2' & @CRLF & _
        '3</div></p>' & @CRLF & _
        '<p>2. еще слова</p>' & @CRLF & _
        '<p>В данном разделе' & @CRLF & _
        'приведены Термины и сокращения</p>' & @CRLF & _
        '<p>Таблица 1. Перечень терминов и сокращений</p>'
 

IMStrelcov

CTPEJIbLLOB
Сообщения
157
Репутация
25
Код:
$sStr = '<p>1. Назначение</p> документа' & @CRLF & _
        '<p>Инструкция' & @CRLF & _
        'пользователя включает' & @CRLF & _
        '<div>1' & @CRLF & _
        '2' & @CRLF & _
        '3</div></p>' & @CRLF & _
        '<p>2. еще слова</p>' & @CRLF & _
        '<p>В данном разделе' & @CRLF & _
        'приведены Термины и сокращения</p>' & @CRLF & _
        '<p>Таблица 1. Перечень терминов и сокращений</p>'

$sStr = StringRegExpReplace($sStr, '(?imsx)([\v]+)', ' ')
$sStr = StringRegExpReplace($sStr, '(?imsx)(\h+<p>)', @CRLF& '<p>')

MsgBox(262144, Default, '[' & $sStr & ']') ; <<< П Р О В Е Р К А >>>
 
Автор
mef-t

mef-t

Осваивающий
Сообщения
306
Репутация
30
Спасибо
 
Верх