等同于
str.gsub(/[^\p{Word} ]/i, '') # works in 1.9.2+
在Ruby 1.8.7中?
我试过
str.gsub(/[^\w\s]/iu, '')
但输出包括更广泛的字符,即®。
一个例子:
Ruby 2.1.5
ruby -e "puts 'abcȣ的®Ȍ'.gsub(/[^\p{Word} ]/i, '')"
#or
#ruby -e "puts \"abc\u0223\u7684\u00ae\u020c\".gsub(/[^\p{Word} ]/i, '')"
输出:
abcȣ的Ȍ
Ruby 1.8.7-p374
ruby -e "puts 'abcȣ的®Ȍ'.gsub(/[^\w\s]/iu, '')"
输出:
abcȣ的®Ȍ
请注意,在我尝试使用Ruby 1.8.7时,®就在输出中。
答案 0 :(得分:0)
您可以在regex docs on unicode properties中查找\p{Word}
。您会看到它是以下属性的组合:
\p{L}
信,\p{M}
马克,\p{N}
数字和\p{Pc}
Connector_Punctuation 您可以在unicode character database中查看这些内容,以确定要在您的正则表达式中包含哪些代码点。