我正在使用oniguruma gem来获取ruby 1.8中的unicode感知正则表达式。根据语法文档,我应该可以使用\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 regexes指定有效的字符属性?
更新 - 如果我使用UTF16编码之一,正则表达式编译;但由于我的字符串是UTF8,但没有帮助。所以我的问题变成:如何使用 UTF-8 Oniguruma正则表达式指定有效的字符属性?
答案 0 :(得分:0)