Помогите со скриптом

Home Forums Разработка Разработка сценариев Помогите со скриптом

This topic contains 0 replies, has 1 voice, and was last updated by  dank1 3 years, 8 months ago.

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #3660

    dank1
    Participant

    Здравствуйте. Совсем замучила проблема такая. Решил познакомиться с scheme и вот чем все обернулось. Не хочет работать регулярное выражение если в строке присутствуют русские буквы. Вот функция:

    
    (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])[.][^.]+)”) не выходит (видимо не поддерживает модификатор). Думал может скрипт на питоне переделать, но хочется в скиме результат получить. Спасибо за внимание надеюсь найдется знающий человек.

Viewing 1 post (of 1 total)

You must be logged in to reply to this topic.