Автор Тема: Удалить переносы в рамках одного тега  (Прочитано 1328 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mef-t [?]

  • Осваивающий
  • **
  • Сообщений: 303
  • Репутация: 30
    • Награды
Добрый день.

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


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

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

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

ConsoleWrite($sText & @CRLF)


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

Русское сообщество AutoIt

Удалить переносы в рамках одного тега
« Отправлен: Сентябрь 06, 2017, 11:58:51 »

Помечен как лучший ответ пользователем mef-t Отправлен Сентябрь 06, 2017, 14:42:01

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3576
  • Репутация: 945
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удалить переносы в рамках одного тега
« Ответ #1, Отправлен: Сентябрь 06, 2017, 14:22:32 »
Код: AutoIt [Выделить]
$sText = StringRegExpReplace($sText, "([^>\r])\R", "$1 ")


Оффлайн mef-t [?]

  • Осваивающий
  • **
  • Сообщений: 303

  • Автор темы
  • Репутация: 30
    • Награды
Re: Удалить переносы в рамках одного тега
« Ответ #2, Отправлен: Сентябрь 06, 2017, 14:41:37 »
Код: AutoIt [Выделить]
$sText = StringRegExpReplace($sText, "([^>\r])\R", "$1 ")

заменяет перенос строки на пробел, если идет не после символа ">" ?
Не догадался. Спасибо.

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

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

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1200
  • Репутация: 168
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Удалить переносы в рамках одного тега
« Ответ #3, Отправлен: Сентябрь 06, 2017, 15:12:47 »
... Может, конечно, встретиться и текст следующего вида...
Код: AutoIt [Выделить]
$sText = StringReplace(StringStripCR($sText), '><', '>' & @CR & '<')

« Последнее редактирование: Сентябрь 06, 2017, 18:49:49 от Alofa »

Русское сообщество AutoIt

Re: Удалить переносы в рамках одного тега
« Ответ #3 Отправлен: Сентябрь 06, 2017, 15:12:47 »

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3576
  • Репутация: 945
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удалить переносы в рамках одного тега
« Ответ #4, Отправлен: Сентябрь 06, 2017, 17:08:21 »
Alofa
Вероятно, вы имели в виду функцию StringStripCR ;)

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1200
  • Репутация: 168
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Удалить переносы в рамках одного тега
« Ответ #5, Отправлен: Сентябрь 06, 2017, 18:51:38 »
OffTopicInnI :thanks:

Русское сообщество AutoIt

Re: Удалить переносы в рамках одного тега
« Ответ #5 Отправлен: Сентябрь 06, 2017, 18:51:38 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
5648 Просмотров
Последний ответ Март 25, 2012, 01:22:03
от asdf8
2 Ответов
1846 Просмотров
Последний ответ Август 24, 2012, 07:07:25
от systel
6 Ответов
2970 Просмотров
Последний ответ Апрель 10, 2013, 14:11:56
от gregaz
7 Ответов
2274 Просмотров
Последний ответ Сентябрь 28, 2013, 18:52:14
от AZJIO
4 Ответов
1965 Просмотров
Последний ответ Декабрь 10, 2013, 13:50:08
от nicki2004
2 Ответов
1099 Просмотров
Последний ответ Май 11, 2014, 12:02:19
от Ivanov
12 Ответов
3671 Просмотров
Последний ответ Август 28, 2014, 11:35:08
от Olim98
0 Ответов
750 Просмотров
Последний ответ Декабрь 11, 2014, 21:36:22
от ahees
0 Ответов
457 Просмотров
Последний ответ Декабрь 12, 2014, 09:52:59
от madmasles
4 Ответов
1567 Просмотров
Последний ответ Январь 03, 2015, 19:08:39
от iwak