Page 1 of 1

Регулярные выражения и русский текст.

Posted: Mon 23 Dec, 2019 12:59
by KotSerg
Подскажите, как лучше на lua использовать регулярные выражения для обработки текста содержащего русские буквы ?
Проблема в том что функции regex.exec(), regex.find(), regex.gsub(), regex.gsub(), regex.match() и соответвущие методы объекта regex.new() работают со строками побайтно, а не посимвольно.
Есть, конечно, параллельные функции regex.execW(), regex.findW() и так далее... И если к аргументу применить win.Utf8ToUtf16, а к результату win.Utf16ToUtf8 то около дела вроде получается, но засада в том, что функции с W аргумент-то строку ждут в Utf16, а вот аргумент шаблон в Utf16 не принимают (а шаблоне иногда тоже русские буквы хочется).
С другой стороны например встроенный поиск в редакторе Far-a тот который вызывается F7 отлично работает с русскими бкувами, каждый русский символ считает именно за один символ, и допускает русские буквы в шаблоне.

Прим: меня не интересует механизм обработки текста с помощью lua'-вских string.find(), unicode.utf8.cfind(), unicode.utf8.match() и так делее.
Меня интересуют именно регулярные выражения.

Регулярные выражения и русский текст.

Posted: Mon 23 Dec, 2019 13:06
by Shmuel
KotSerg wrote: Mon 23 Dec, 2019 12:59 Проблема в том что функции regex.exec(), regex.find(), regex.gsub(), regex.gsub(), regex.match() и соответвущие методы объекта regex.new() работают со строками побайтно, а не посимвольно.
Насколько мне известно, данное утверждение неверно.