我正在尝试像 \p{IsGreek} 和 \p{IsBasicLatin} 这样的正则表达式构造,但我收到了这个错误
config/initializers/app_constants.rb:13:无效字符属性名称 {IsBasicLatin}
我正在尝试像 \p{IsGreek} 和 \p{IsBasicLatin} 这样的正则表达式构造,但我收到了这个错误
config/initializers/app_constants.rb:13:无效字符属性名称 {IsBasicLatin}
看起来 Ruby 不支持 Unicode 块,但它确实支持属性和脚本。请参阅ruby-doc.org 上的字符属性。
这意味着您可以使用 Unicode 脚本:
\p{Latin}
\p{Greek}
有关 Unicode 属性、脚本和块的介绍,您可以查看regular-expressions.info
Ruby 2.0 增加了对 Unicode 块的支持:
$ ruby-1.9.3-p484/bin/ruby -e "p /\p{InBasicLatin}/"
-e:1: invalid character property name {InBasicLatin}: /\p{InBasicLatin}/
$ ruby-2.0.0-p353/bin/ruby -e "p /\p{InBasicLatin}/"
/\p{InBasicLatin}/
请注意,您必须使用In
,而不是Is
。