Войти

Показать полную графическую версию : [решено] Как сделать частичную замену текста.


NikolayHAOS
29-09-2015, 23:01
Всем доброго времени суток.
Даже не знаю где и тему создавать.
Есть такой текст. Создается автоматически при добавлении картинок на страницу через Microsoft Office SharePoint Designer 2007



<img src="../../../images/2015/September/29.09/IMG_2236.JPG" width="1024" height="768">
<img src="../../../images/2015/September/29.09/IMG_2265.JPG" width="1224" height="868">
<img src="../../../images/2015/September/29.09/IMG_2789.JPG" width="xxxx" height="aaa">


Из него надо получить такой текст

<a href="../../../images/2015/September/29.09/IMG_2236.JPG" rel="lightgallery[flowers]"><img src="../../../images/2015/September/29.09/IMG_2236.JPG" width="454" height="auto">
<a href="../../../images/2015/September/29.09/IMG_2265.JPG" rel="lightgallery[flowers]"><img src="../../../images/2015/September/29.09/IMG_2265.JPG" width="454" height="auto">
<a href="../../../images/2015/September/29.09/IMG_2789.JPG" rel="lightgallery[flowers]"><img src="../../../images/2015/September/29.09/IMG_2789.JPG" width="454" height="auto">

Ума не приложу как сего добиться какую программу использовать.

Проблему замены
width="1024" height="768">
на
width="454" height="auto">
решил через нотепад, путем регулярных выражений.

Habetdin
30-09-2015, 01:57
Ума не приложу как сего добиться какую программу использовать. Проблему замены решил через нотепад, путем регулярных выражений. »
Используя те же регулярные выражения (хотя использовать их для обработки HTML не всегда здравая идея) доделайте и остальное :)
Поиск:
<img src="(.+?)".*?>
Замена:
<a href="\1" rel="lightgallery[flowers]"><img src="\1" width="454" height="auto"></a>
Регулярные выражения - Группировка - Обратная связь (https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0 %BD%D0%B8%D1%8F#.D0.9E.D0.B1.D1.80.D0.B0.D1.82.D0.BD.D0.B0.D1.8F_.D1.81.D0.B2.D1.8F.D0.B7.D1.8C)

NikolayHAOS
13-11-2015, 22:59
Habetdin,
Огромное вам спасибо. Прочитал, освоился, удобная я вам скажу штука.
И вдогонку разрешите вопрос:
(хотя использовать их для обработки HTML не всегда здравая идея) »
А что использовать?

Habetdin
14-11-2015, 17:33
А что использовать? »
Используйте различные парсеры DOM, использование которых будет более безопасным.
HTML относится ко 2 типу языков по иерархии Хомского (https://ru.wikipedia.org/wiki/%D0%98%D0%B5%D1%80%D0%B0%D1%80%D1%85%D0%B8%D1%8F_%D0%A5%D0%BE%D0%BC%D1%81%D0%BA%D0%BE%D0%B3%D0%BE), а с помощью регулярных выражений можно корректно обработать лишь 3 тип.
[hr]Прочитал, освоился, удобная я вам скажу штука. »
Могу посоветовать неплохую шпаргалку (http://www.exlab.net/tools/sheets/regexp.html) по регулярным выражениям.

NikolayHAOS
18-11-2015, 00:10
Могу посоветовать неплохую шпаргалку по регулярным выражениям. »
Неплохую???
Это мягко сказано, скажу честно вроде не дурак, но порой объяснения (и не только из википедии) не точно не понятны, а реально "доставляют".
А тут все понятно. Спасибо еще раз.
З.Ы.
Используйте различные парсеры DOM, использование которых будет более безопасным.
HTML относится ко 2 типу языков по иерархии Хомского, а с помощью регулярных выражений можно корректно обработать лишь 3 тип. »
Интурист хорошо говорит (с)
http://www.youtube.com/watch?v=ESbic8F6Trs
Гугление и википедия конечно пролили свет на указанные вами слова, но как этим пользоваться?

NikolayHAOS
18-11-2015, 09:00
Записал макрос в Notepad++.
Теперь все замены (3 штуки) происходят мгновенно по нажатию трех кнопок.
Ссылка на файл макросов shortcuts
https://yadi.sk/d/hqaQD5jlphZgZ




© OSzone.net 2001-2012