0

我正在尝试像 \p{IsGreek} 和 \p{IsBasicLatin} 这样的正则表达式构造,但我收到了这个错误

config/initializers/app_constants.rb:13:无效字符属性名称 {IsBasicLatin}

4

3 回答 3

1

看起来 Ruby 不支持 Unicode 块,但它确实支持属性和脚本。请参阅ruby​​-doc.org 上的字符属性

这意味着您可以使用 Unicode 脚本:

  • \p{Latin}
  • \p{Greek}

有关 Unicode 属性、脚本和块的介绍,您可以查看regular-expressions.info

于 2013-05-15T14:25:25.733 回答
0

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

于 2013-12-12T11:34:50.550 回答
0

请尝试以下操作:

\p{Greek}
\p{Latin}

此处的文档:

http://ruby-doc.org/core-2.0/Regexp.html

于 2013-05-15T14:24:44.737 回答