正则表达式将非英语字母与非单词字符匹配

时间:2013-05-22 22:48:08

标签: ruby regex

@raw_array[i]=~/[\W]/

非常简单的正则表达式。 当我尝试使用一些非拉丁字母(俄语具体)时,条件是错误的。

我该怎么办?

2 个答案:

答案 0 :(得分:8)

@raw_array[i] =~ /[\p{L}]/

使用西里尔字符进行测试。

参考:http://www.regular-expressions.info/unicode.html#prop

答案 1 :(得分:1)

来自Regexp documentation

  

/\W/ - 非单词字符([^a-zA-Z0-9_]

它特别不支持Unicode。也许这样的事情对你来说会更好:

@raw_array[i]=~/[^[:word:]]/