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

Jeeves

Client
Joined
Feb 22, 2018
Messages
51
Reaction score
5
Points
8
Здравствуйте. Есть такой текст:
<h2><span>10</span> The Immortals</h2>
<p><img src="http://listverse.wpengine.netdna-cdn.com/wp-content/uploads/2019/02/Immortals.jpg" alt="" class="alignnone size-full wp-image-388228"></p>
Тут много текста
<h2><span>9</span> Thessalians</h2>
<p><img src="http://listverse.wpengine.netdna-cdn.com/wp-content/uploads/2019/02/Thessalian-cavalryman.jpg" alt="" class="alignnone size-full wp-image-388229"></p>
Тут много текста
<h2><span>8</span> Genoese Crossbowmen</h2>
<p><img src="http://listverse.wpengine.netdna-cdn.com/wp-content/uploads/2019/02/Genoese-crossbowmen.jpg" alt="" class="alignnone size-full wp-image-388230"</p>
Тут много текста
Хочу вырезать каждый код картинки и заменить его на ее номер. Вот так:
<p><img src="http://listverse.wpengine.netdna-cdn.com/wp-content/uploads/2019/02/Immortals.jpg" alt="" class="alignnone size-full wp-image-388228"></p>
на
Pic1
Следующую картинку на Pic 2 и так далее

Придумал только такое решение - вырезать текст до конца кода первой картинки и засунуть в переменную, переименовывать в ней код на нужный мне, и добавлять в другую переменную. Затем вырезать его из основного кода и по новой до последней картинки.

Подскажите пожалуйста более изящное решение или каким кодом дописывать текст в переменную.
Заранее благодарен!
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
22,699
Reaction score
10,161
Points
113
Это нужно для временного изъятия кодов картинок и потом их возврата на свои места?
Можно сделать таким образом:
- по регулярке добавляете из исходного кода все коды картинок в Список
- делаете замену кодов картинок на не нумерованный макрос, например ##Pic##
- для возврата кодов картинок на свои места, начинаете брать первую строку из Списка с удалением и заменять макрос ##Pic## на код картинки (строку из списка) по 0-му совпадению
- и так делать в цикле пока не закончится Список.
 
  • Thank you
Reactions: Jeeves

Jeeves

Client
Joined
Feb 22, 2018
Messages
51
Reaction score
5
Points
8
Это нужно для временного изъятия кодов картинок и потом их возврата на свои места?
Можно сделать таким образом:
- по регулярке добавляете из исходного кода все коды картинок в Список
- делаете замену кодов картинок на не нумерованный макрос, например ##Pic##
- для возврата кодов картинок на свои места, начинаете брать первую строку из Списка с удалением и заменять макрос ##Pic## на код картинки (строку из списка) по 0-му совпадению
- и так делать в цикле пока не закончится Список.
Пошел искать описание работы макросов:-) Спасибо за помощь!
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
22,699
Reaction score
10,161
Points
113
Пошел искать описание работы макросов:-) Спасибо за помощь!
Наверное, я неудачно выразился, не макрос, а метка (если про ##Pic##).
 
  • Thank you
Reactions: Jeeves

Jeeves

Client
Joined
Feb 22, 2018
Messages
51
Reaction score
5
Points
8
Наверное, я неудачно выразился, не макрос, а метка (если про ##Pic##).
Все встало на свои места, спасибо!
 

Jeeves

Client
Joined
Feb 22, 2018
Messages
51
Reaction score
5
Points
8
Наверное, я неудачно выразился, не макрос, а метка (если про ##Pic##).
Можешь еще подсказать регулярку для нулевого совпадения?
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
22,699
Reaction score
10,161
Points
113
Можешь еще подсказать регулярку для нулевого совпадения?
Тут регулярка не нужна, просто Заменой:

upload_2019-3-14_2-49-26.png
 
Last edited:
  • Thank you
Reactions: Jeeves

Jeeves

Client
Joined
Feb 22, 2018
Messages
51
Reaction score
5
Points
8

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
22,699
Reaction score
10,161
Points
113
Сори что злоупотребляю, а такое можно сделать в сишарпе?
Можно конечно.
Сейчас может Си-шарперы подтянутся, напишут код. :-)
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)