Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ Регулярные выражения

Автор: Fire73 18.1.2020, 23:34

Здравствуйте! Очень нужна помощь.
Пытался разобраться в регулярных выражениях, не получается..

Задача состоит в том, что есть ссылка:
1) https://www.*****.ru/profile/messenger/channel/u2i-123456789-175923379 (всё статично, кроме цифр, выделенных красным цветом).
2) Есть текстовый файл, где вместо 123456789 различные цифры, написанные каждый в отдельную строку.
3) Необходимо чтобы при каждом возвращение к началу скрипта, бралось новое значение (с помощью load_array), условное значение будет 777888999

В итоге должно получиться, например: https://www.*****.ru/profile/messenger/channel/u2i-777888999-175923379

Заранее спасибо

Автор: cirus 19.1.2020, 7:55

Код
load_array %arr C:\file111.txt     // путь к файлу

log clear
log mode compact

set $regexp "(?<=-)\d+(?=-)"  // число, перед и после которого -
for #i 1 size(%arr)
    log %arr[#i]
    set #n regexp (#position $hitstring %arr[#i] $regexp)
    if  #n = 1
        log $hitstring  // найденное число

        set $s %arr[#i]
        set %arr[#i] string_replace($s $hitstring #i)  // замена, дописать нужные действия
        log %arr[#i]  // получившаяся строка после замены
        log
    end_if
end_for
save_array %arr C:\file222.txt // путь к файлу, куда сохранить
end_script

Автор: Fire73 19.1.2020, 15:58

Спасибо огромное!!

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)