2011-06-05 27 views
3

我想用Ruby 1.8.7验证'单词'。如何使用Ruby正则表达式来捕获非英语单词?

我正则表达式搭上一句话是目前:

/[a-zA-Z]\'*\-*/ 

这只会赶上英语单词;有没有办法捕捉非英文UTF-8字符?

+3

尝试使用\ w而不是[a-zA-Z] – 2011-06-05 18:06:50

+0

可能的重复http://stackoverflow.com/questions/397788/why-does-w-match-only-english-words-in-javascript-regex – Homam 2011-06-05 18:09:43

+1

@极客。好点,'/ \ w + /'是对的,但他也需要'/ \ w +/u' – DigitalRoss 2011-06-05 19:08:34

回答

4

即使是1.8.x的正则表达式引擎是UTF-8意识到,你只需要使用正确的表达,它不仅仅是使用/\w/稍微:

s = "résumé and some other words" 
puts s[/[a-z]+/u] 
puts s[/\w+/u] 

,你会得到:

r 
résumé 
+0

太棒了!谢谢! – ethicalhack3r 2011-06-07 13:38:18