Автор Тема: [Данные, строки] Замена текста между известными тегами  (Прочитано 4211 раз)

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

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Tapok [?]

  • Новичок
  • *
  • Сообщений: 203
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.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" может быть любая цифра.

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

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


Оффлайн ildar [?]

  • Осваивающий
  • **
  • Сообщений: 244
  • Репутация: 28
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.8.1
Чтобы было понятно что заменить, нужно хотя бы кусок текста в котором содержится #Фрукты/4.1.1/1#которое
Вместо "Фрукты" может быть любое другое название (на русском или англ.).
Вместо "4.1.1" может быть как "5", так и 5.1, так и 5.1.1.1.
Вместо "1" может быть любая цифра.
Обрамляющие теги ## выбраны произвольно (можно использовать любые другие)

Оффлайн Tapok [?]

  • Новичок
  • *
  • Сообщений: 203

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

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

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

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

Re: [Данные, строки] Замена текста между известными тегами
« Ответ #2 Отправлен: Апрель 27, 2015, 12:27:58 »

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 462
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.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/1#
Получаем:
"Rpic_ill/picture/Илл.4.1.1.Фрукты.png_name_Илл.^4.1.1.^Фрукты_hot_ill/gif/Илл.4.1.1.Фрукты_1.png"Фрукты

« Последнее редактирование: Апрель 27, 2015, 22:46:39 от inververs »

Оффлайн Tapok [?]

  • Новичок
  • *
  • Сообщений: 203

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Да, так и надо!  :-\ виноват, буду стараться формулировать мысль четче!  ;)

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

Re: [Данные, строки] Замена текста между известными тегами
« Ответ #4 Отправлен: Апрель 27, 2015, 12:45:11 »

Помечен как лучший ответ пользователем Tapok Отправлен Апрель 27, 2015, 13:16:31

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 462
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
$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>')
 

« Последнее редактирование: Апрель 27, 2015, 13:01:20 от inververs »

Оффлайн Tapok [?]

  • Новичок
  • *
  • Сообщений: 203

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Спасибо большое! Работает!  :laugh: :IL_AutoIt_1:

Оффлайн Garrett [?]

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


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

Скорблю и помню.




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

Re: [Данные, строки] Замена текста между известными тегами
« Ответ #7 Отправлен: Апрель 27, 2015, 15:22:09 »

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 462
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Так то оно да, но ваш тэк [code превратит все в одно строчную нелепицу одного цвета.

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 963
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
inververs  [?]
Цитировать
одно строчную нелепицу одного цвета
*click*

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

Re: [Данные, строки] Замена текста между известными тегами
« Ответ #9 Отправлен: Апрель 27, 2015, 17:12:09 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
4068 Просмотров
Последний ответ Июль 13, 2012, 23:39:18
от CreatoR
6 Ответов
2597 Просмотров
Последний ответ Июнь 02, 2014, 02:55:50
от Shinoby
10 Ответов
3648 Просмотров
Последний ответ Октябрь 22, 2014, 00:07:05
от Garrett
2 Ответов
2129 Просмотров
Последний ответ Февраль 02, 2015, 18:25:04
от edyapd
30 Ответов
16664 Просмотров
Последний ответ Апрель 26, 2015, 11:54:58
от Garrett
0 Ответов
1308 Просмотров
Последний ответ Апрель 22, 2015, 17:49:49
от madmasles
2 Ответов
2890 Просмотров
Последний ответ Июль 18, 2015, 17:54:21
от alex33
0 Ответов
975 Просмотров
Последний ответ Июль 18, 2015, 16:51:12
от madmasles
2 Ответов
2003 Просмотров
Последний ответ Апрель 29, 2019, 23:58:48
от CreatoR
0 Ответов
970 Просмотров
Последний ответ Апрель 15, 2019, 13:38:08
от paa13