【发布时间】:2013-05-22 22:48:08
【问题描述】:
@raw_array[i]=~/[\W]/
非常简单的正则表达式。 当我用一些非拉丁字母(具体是俄语)尝试它时,条件是错误的。
我能用这个做什么?
【问题讨论】:
-
尝试使用
^\pL而不是\W
@raw_array[i]=~/[\W]/
非常简单的正则表达式。 当我用一些非拉丁字母(具体是俄语)尝试它时,条件是错误的。
我能用这个做什么?
【问题讨论】:
^\pL 而不是\W
【讨论】:
/\W/- 非单词字符 ([^a-zA-Z0-9_])
它特别不支持 Unicode。也许这样的事情会更适合你:
@raw_array[i]=~/[^[:word:]]/
【讨论】:
\W 字符类将一些非拉丁字母视为非单词字符。我解释说该字符类不支持 Unicode。如上所述,它对构成“单词”字符的定义非常狭窄。然后,我向您展示了一个可识别 Unicode 的字符类,它或多或少地按照您希望 \W 的方式工作。
?> 'ываыва'=~/[[:word:]]/ => nil
0。
>> RUBY_VERSION => "1.9.3"。但正如我可以在 Rubular 中检查的那样,ruby 的行为低于 1.9 。我不知道发生了什么......