Как переименовать названия картинок в загружаемом тексте ?

kuzenstudio

Client
Регистрация
26.06.2010
Сообщения
139
Благодарностей
28
Баллы
28
Добрый всем !
Помогите решить скорей всего простетскую задачу, не как не соображу как.
В переменной текст для постинга. В нем есть от 1-5 картинок <img src="картинка.расширение">
Внимание знатоки ! Как переименовать в тексте, все картинки на:
<img src="$1">
<img src="$2">
<img src="$3"> и тд
Заранее спасибо !
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
"Обработка текста - Замена (Regex)" по наращиваемому от нуля счетчику (номеру совпадения), в цикле, выход из цикла по красному порту. Регулярка: (?<=<img\ src=").*?(?=")
 
  • Спасибо
Реакции: kuzenstudio

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
C#:
string text = project.Variables["переменная с текстом"].Value;
MatchCollection img = Regex.Matches(text, @"<img\ src="".*?"">");
for(int i = 0; i < img.Count; i++)
    text = text.Replace(img[i].Value, string.Format(@"<img src=""${0}"">", i + 1));
return text;
 
  • Спасибо
Реакции: Sergodjan и kuzenstudio

kuzenstudio

Client
Регистрация
26.06.2010
Сообщения
139
Благодарностей
28
Баллы
28

kuzenstudio

Client
Регистрация
26.06.2010
Сообщения
139
Благодарностей
28
Баллы
28
C#:
string text = project.Variables["переменная с текстом"].Value;
MatchCollection img = Regex.Matches(text, @"<img\ src="".*?"">");
for(int i = 0; i < img.Count; i++)
    text = text.Replace(img[i].Value, string.Format(@"<img src=""${0}"">", i + 1));
return text;
А что то не выходит каменный цветок, отрабатывает и возвращает текст как есть.
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
Не совсем понял, это .*? меняю на значения счетчика 1, но получается что имена у всех сразу заменятся на $1
Для этого нужен еще один наращиваемый от 1 счетчик, напрмиер с именем nomer_parametra
Заменяем на ${-Variable.nomer_parametra-}

Приложил пример шаблона.
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: kuzenstudio

kuzenstudio

Client
Регистрация
26.06.2010
Сообщения
139
Благодарностей
28
Баллы
28
Для этого нужен еще один наращиваемый от 1 счетчик, напрмиер с именем nomer_parametra
Заменяем на ${-Variable.nomer_parametra-}

Приложил пример шаблона.
Спасибо, работает, но не уходит по красной ветки. Менять уже нечего, просто скачет туда обратно.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
  • Спасибо
Реакции: kuzenstudio

kuzenstudio

Client
Регистрация
26.06.2010
Сообщения
139
Благодарностей
28
Баллы
28
в настройках кубика C# укажите в какую переменную возвращать измененный текст.
Указывал, возвращает без изменений. Правда мой косяк, указал не правильно в вопросе ссылку
<img src="/images/b.png" />
 

kuzenstudio

Client
Регистрация
26.06.2010
Сообщения
139
Благодарностей
28
Баллы
28
Для этого нужен еще один наращиваемый от 1 счетчик, напрмиер с именем nomer_parametra
Заменяем на ${-Variable.nomer_parametra-}

Приложил пример шаблона.
Решил колхознинько, но работает. Добавил еще один счетчик и указал с запасом 10 циклов, пробегает и уходит по красной ветки.
 
  • Спасибо
Реакции: Sergodjan

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
Решил колхознинько, но работает. Добавил еще один счетчик и указал с запасом 10 циклов, пробегает и уходит по красной ветки.
А нужно было всего лишь изменить регулярку
C#:
string text = project.Variables["переменная с текстом"].Value;
MatchCollection img = Regex.Matches(text, @"(?<=<img\ src="").*?(?="")");
for(int i = 0; i < img.Count; i++)
    text = text.Replace(img[i].Value, string.Format(@"${0}", i + 1));
project.Variables["переменная с текстом"].Value = text;
 
  • Спасибо
Реакции: kuzenstudio

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
Спасибо, работает, но не уходит по красной ветки. Менять уже нечего, просто скачет туда обратно.
Да, прошу прощения, в Замене нет ухода по красной линии.
Можно таким образом сделать (добавить один кубик проверки).
Приложил поправленный пример.

74101
 

Вложения

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

kuzenstudio

Client
Регистрация
26.06.2010
Сообщения
139
Благодарностей
28
Баллы
28
Огромное всем спасибо, откуда вы все знаете)
 
  • Спасибо
Реакции: Sergodjan

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