我正在使用oniguruma宝石在ruby1.8中获得unicode感知的regexes。根据语法文档,我应该能够使用\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编码之一,regex就会编译;但是由于我的字符串在UTF8中,所以没有帮助。因此,我的问题是:如何使用UTF-8 Oniguruma regexes指定一个有效的字符属性?
发布于 2012-10-18 19:15:38
试着使用
/\p{Mark}我在一个老Ruby博客上读到,使用正斜杠将“尝试在字符串中找到编码值”。
http://www.ruby-forum.com/topic/154384
https://stackoverflow.com/questions/5376329
复制相似问题