Здесь есть пара вопросов.Во-первых, небольшая проблема: .-,
будет соответствовать как можно меньше перед комой, то есть ноль символов.Вы должны закрепить начало соответствующей строки.
Более сложная проблема заключается в том, что вы используете буквы иврита.Проблема в том, что Lua не имеет понятия многобайтовых символов.
Если вы используете 8-битную кодировку, такую как Windows-1255 или ISO-8859-8, то вы, вероятно,может просто соответствовать классу персонажа [ת-א]
.Если вы правильно установили ивритский языковой стандарт, %l
должен нормально работать для вас.
Если вы используете UTF-8 или любую другую кодировку, которая использует многобайтовые символы, то вы должны создать регулярное выражение со всемиЕврейский алфавит сбежал как последовательность октетов.Алеф U + 05D0x, который в UTF-8 будет представлен как 0xD7 0x90
.Tav - это U + 05EA, который будет закодирован как 0xD7 0xAA
.
В Lua вы можете экранировать любой 8-битный символ с обратной косой чертой + десятичный код.Все еврейские символы, закодированные в UTF-8, имеют первый и тот же байт - 0xD7
, то есть "\215"
.Второй символ может быть любым от "\144"
до "\170"
.Таким образом, регулярное выражение, которое будет соответствовать одной букве иврита: "\215[\144-\170]"
.Поместите это в исходное регулярное выражение, где у вас были одинарные точки, соответствующие любому символу.
Конечно, приведенные выше рассуждения должны быть изменены для кодировок, отличных от UTF-8.Надо помнить направление письма справа налево на иврите.