Что нового

[Данные, строки] Замена текста между известными тегами

Tapok

Новичок
Сообщения
204
Репутация
0
Как с помощью регулярных выражений заменить в тексте:

Код:
#Фрукты/4.1.1/1#

на:

Код:
<span ID="ACH-LINK" class="Rpic_ill/picture/Илл.4.1.1.Фрукты.png_name_Илл.^4.1.1.^Фрукты_hot_ill/gif/Илл.4.1.1.Фрукты_1.png" title="">Фрукты</span>

Вместо "Фрукты" может быть любое другое название (на русском или англ.).
Вместо "4.1.1" может быть как "5", так и 5.1, так и 5.1.1.1.
Вместо "1" может быть любая цифра.

Обрамляющие теги ## выбраны произвольно (можно использовать любые другие)
 

ildar

Осваивающий
Сообщения
252
Репутация
30
Чтобы было понятно что заменить, нужно хотя бы кусок текста в котором содержится
Код:
#Фрукты/4.1.1/1#
которое
Tapok сказал(а):
Вместо "Фрукты" может быть любое другое название (на русском или англ.).
Вместо "4.1.1" может быть как "5", так и 5.1, так и 5.1.1.1.
Вместо "1" может быть любая цифра.
Обрамляющие теги ## выбраны произвольно (можно использовать любые другие)
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
Собственно есть текст, в котором конкретное слово надо заменить на ссылку.
Для этого это конкретное слово мы выделяем (##) и внутри же пишем (для парсера) что подставить в ссылку.
Фраза: На столе лежали яблоки и груши. Хотим, чтобы "яблоки" было ссылкой. Ссылка приведена в 1 посте.
Выделяем нужное нам слово:

На столе лежали #яблоки/4.1.1/1# и груши.

Это заменяется на ссылку, при этом "яблоки" вставляются в свое место ссылки, "4.1.1" в свое, а "1", в свое (как приведено в примере ссылки).
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Как из этой строки: #Фрукты/4.1.1/1#
получил вот это?
Код:
<span ID="ACH-LINK" class="Rpic_ill/picture/Илл.4.1.1.Фрукты.png_name_Илл.^4.1.1.^Фрукты_hot_ill/gif/Илл.4.1.1.Фрукты_1.png" title="">Фрукты</span>

Как нужно заменять? Я бы как то так ставил задачу:
Имеем:
#Фрукты/4.1.1/1#
Получаем:
"Rpic_ill/picture/Илл.4.1.1.Фрукты.png_name_Илл.^4.1.1.^Фрукты_hot_ill/gif/Илл.4.1.1.Фрукты_1.png"Фрукты
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
Да, так и надо! :-\ виноват, буду стараться формулировать мысль четче! ;)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
$out = StringRegExpReplace($in, '#([^/#]+)/([^/#]+)/([^/#]+)#', '<span ID="ACH-LINK" class="Rpic_ill/picture/Илл.\2.\1.png_name_Илл.^\2.^\1_hot_ill/gif/Илл.\2.\1_\3.png" title="">\1</span>')
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
Спасибо большое! Работает! :laugh: :IL_AutoIt_1:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
inververs
Ну вы-то, вы-то не новичок на форуме!
Семён Семёнович! :smile:
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Так то оно да, но ваш тэк [code превратит все в одно строчную нелепицу одного цвета.
 
Верх