Я использую самоцвет oniguruma для получения регулярных выражений с поддержкой юникода в ruby 1.8.В соответствии с синтаксической документацией я должен иметь возможность использовать \p{M}
или \p{Mark}
для сопоставления кодовых точек со свойством Mark.
Однако, когда я делаю следующее
ORegexp.new '\p{M}',
:options => OPTION_MULTILINE | OPTION_SINGLELINE | OPTION_IGNORECASE | OPTION_EXTEND,
:syntax => SYNTAX_JAVA, # so we can use character properties
:encoding => ENCODING_UTF8
Я получаю ArgumentError: Oniguruma Error: invalid character property name {M}
.Я получаю ту же ошибку, если использую {Mark}
или если использую один из других синтаксисов, поддерживающих \p
.
Что я делаю не так?Как указать допустимое свойство символа с помощью регулярных выражений Oniguruma?
UPDATE - Если я использую одну из кодировок UTF16, регулярное выражение компилируется;но так как мои строки в UTF8, это не помогает.Поэтому у меня возникает вопрос: как указать допустимое свойство символа с помощью UTF-8 регулярных выражений Онигурума?