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

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
KotSerg
Posts: 3
Joined: Thu 21 Nov, 2019 21:17

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

Post 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() и так делее.
Меня интересуют именно регулярные выражения.
Shmuel
Posts: 6194
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 337 times

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

Post by Shmuel »

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

Return to “Нужна помощь”