Что нового

Удалить переносы в рамках одного тега

mef-t

Осваивающий
Сообщения
306
Репутация
30
Добрый день.

Есть текст:
Код:
$sText &= '<h2>2.5.           ' & @CR & 'Планирование долгосрочных услуг (страхование), затраты по которым' & @CR & 'периодически списываются на себестоимость</h2>'


Помогите удалить переносы между тегами <h2> и </h2> и заменить пробелами

Следующий код удаляет только 1 перенос, а нужно все.
Код:
$sText = '<h2>2.1.           ' & @CR & 'Ввод позиции на материал</h2>' & @CR
$sText &= '<h2>2.5.           ' & @CR & 'Планирование долгосрочных услуг (страхование), затраты по которым' & @CR & 'периодически списываются на себестоимость</h2>'

$pattern = '(?s)(<h2.*?)\R(.*?</h2>)'
$sText = StringRegExpReplace($sText, $pattern, '$1'&' '&'$2')

ConsoleWrite($sText & @CRLF)


P.S. могут быть и другие теги и другой текст. Нужно удалить все переносы (заменить пробелами) строго между конкретными тегами.
 

InnI

AutoIT Гуру
Сообщения
4,911
Репутация
1,427
Код:
$sText = StringRegExpReplace($sText, "([^>\r])\R", "$1 ")
 
Автор
mef-t

mef-t

Осваивающий
Сообщения
306
Репутация
30
InnI сказал(а):
Код:
$sText = StringRegExpReplace($sText, "([^>\r])\R", "$1 ")
заменяет перенос строки на пробел, если идет не после символа ">" ?
Не догадался. Спасибо.

Может, конечно, встретиться и текст следующего вида:
Код:
$sText = '<h2>' & @CR &'2.1. ' & @CR & 'Ввод позиции на материал</h2>' & @CR

Но это маловероятно. Собственно для этой ситуации я уже сам доделаю.
 

InnI

AutoIT Гуру
Сообщения
4,911
Репутация
1,427
Alofa
Вероятно, вы имели в виду функцию StringStripCR ;)
 
Верх