Как создать список из тегов с сохранением структуры первоначального html

qwasen

Client
Регистрация
26.06.2016
Сообщения
25
Благодарностей
2
Баллы
3
Добрый день, есть текст с тегами:
<p>текст 1</p>
<p>текст 2</p>
<h2>заголовок</h2>
<p>текст 3</p>
<img>картинка</img>

Можно ли каким то методом создать список в строках которого будут по порядку эти теги с текстом :
Список:
строка 1:<p>текст 1</p>
строка 2: <p>текст 2</p>
строка 3: <h2>заголовок</h2>
строка 4: <p>текст 3</p>
строка 5: <img>картинка</img>

В целом мне это надо для того чтобы перевести текст с английского на русский при этом сохранить html разметку.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
@qwasen Регулярка: <.*?>.*?<.*?>

80858
 
  • Спасибо
Реакции: qwasen

qwasen

Client
Регистрация
26.06.2016
Сообщения
25
Благодарностей
2
Баллы
3

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
тэг Img имеет другой формат
 

qwasen

Client
Регистрация
26.06.2016
Сообщения
25
Благодарностей
2
Баллы
3
А есть какие то готовые классы которые распознают теги? Типа Html Collection
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
А есть какие то готовые классы которые распознают теги? Типа Html Collection
Начсет классов не знаю, но эта реглярка по идее должна брать все корректно, вот например:

80862


PS: Хотя я тут тоже неправильно прописал тег img, он без закрывающего </img> используется.
В картинке нет анкора, т.е. актуально переводить alt и/или title к картинке, если они есть. так что нужно чуть модернизирвоать регулярку.
 
Последнее редактирование:

Михаил Комар

Новичок
Регистрация
02.08.2021
Сообщения
1
Благодарностей
0
Баллы
1
Если вы говорите о метатегах, то можете посмотреть у нас https://2plus2.ua/novyny-cikavo , зажав клавиши ctrl+U
 

qwasen

Client
Регистрация
26.06.2016
Сообщения
25
Благодарностей
2
Баллы
3
Начсет классов не знаю, но эта реглярка по идее должна брать все корректно, вот например:

Посмотреть вложение 80862

PS: Хотя я тут тоже неправильно пропсиал тег img, он без закрывающего </img> используется.
Только сейчас понял: я неправильно описал исходные данные.
У тега img нет закрывающего тега, то как раз о чем @doc написал.

Получается исходны текст должен выглядеть так. + Добавил пример с вложеностью тегов которую изначально не учитывал:
<p>текст 1</p>
<p>текст 2</p>
<h2>заголовок</h2>
<p>текст 3 <img></p>
<figure><img src=""> <figcaption> <em> текст 4</em> </figcaption> </figure>
<p>текст 5 <img></p>


Немного доделал изначальный скрипт от @sergodjan66 но он сьедает 5 строку когда идет больше 1 закрывающего </>
тега подряд
<\w.*?>.*?<\/.*?>
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
Только сейчас понял: я неправильно описал исходные данные.
У тега img нет закрывающего тега, то как раз о чем @doc написал.

Получается исходны текст должен выглядеть так. + Добавил пример с вложеностью тегов которую изначально не учитывал:
<p>текст 1</p>
<p>текст 2</p>
<h2>заголовок</h2>
<p>текст 3 <img></p>
<figure><img src=""> <figcaption> <em> текст 4</em> </figcaption> </figure>
<p>текст 5 <img></p>


Немного доделал изначальный скрипт от @sergodjan66 но он сьедает 5 строку когда идет больше 1 закрывающего </>
тега подряд
<\w.*?>.*?<\/.*?>
Попробуйте такую: (<.*?>.*?<.*?>)|<.*?>

80863
 

qwasen

Client
Регистрация
26.06.2016
Сообщения
25
Благодарностей
2
Баллы
3
  • Спасибо
Реакции: Sergodjan

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