Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Регулярные выражения Script FU  (Прочитано 497 раз)

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

Оффлайн dank1

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Регулярные выражения Script FU
« : 08 Апреля 2015, 20:03:54 »
Здравствуйте. Совсем замучила проблема такая. Решил познакомиться с scheme (в редакторе GIMP) и вот чем все обернулось. Не хочет работать регулярное выражение если в строке присутствуют русские буквы. Вот функция:

(define (get-file-number orig-name)
 (let* ((buffer (vector "" "" "")))
  (if (re-match "(([0-9])[.][^.]+)" orig-name buffer) ;
   (- (char->integer (string-ref (substring orig-name (car (vector-ref buffer 2)) (+ 1 (car (vector-ref buffer 2)))) 0)) 48)
  )
 )
)

Она возвращает последнюю цифру в имени. С английскими работает корректно. А если есть хоть 1 рус. буква то все бред… Все обыскал нигде даже справки нету по этой функции (re-match) пришлось методом тыка выяснять что у неё за параметры. Читал что может помочь модификатор u (пробовал так «(?u)(([0-9])[.][^.]+)») не выходит (видимо не поддерживает модификатор). Думал может скрипт на питоне переделать, но хочется в скиме результат получить. Спасибо за внимание надеюсь найдется знающий человек.

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.