Oberon space
General Category => Общий раздел => Тема начата: ilovb от Май 01, 2013, 04:34:38 pm
-
В Lua регулярки используют сишную функцию isalpha. Как сделать чтобы русские буквы тоже обрабатывались?
-
Вроде нашел как локаль установить:
print(os.setlocale('Russian_Russia.1251'))
local s = " ю g "
print(s:match('%a'))
Но гадость не работает чегой-то :(
-
Хм... Не работает в LuaJIT. В интерпретаторе все пашет как надо...
-
А почему локаль как-то нестандарнтно записывается?
Может, попробовать так: "ru_RU.UTF-8"?
-
или хотя бы вместо 1251 писать CP1251
-
А там по разному можно. ".1251", "Russian" и т.д.
В интерпретаторе Lua работает. В LuaJIT нет (локаль переключается, но регулярки русские символы не воспринимают)
Если указывать "ru_RU.UTF-8" или "CP1251" то даже локаль не переключается
-
"isalpha" в исходниках LuaJIT нет...
Вот подстава :(
-
Написал разработчику об этом. Он ответил что LuaJIT не поддерживает локали для регулярок, и в таких случаях нужно использовать диапазоны типа [А-я]