用于匹配单词的Groovy Regex(甚至带有重音字母)

时间:2011-03-23 13:15:23

标签: regex groovy diacritics

我试图从任何文本中标记单词,例如:

Ça me plaît.

应该被标记为“ça,me,plaît”。 为此,我想从所有特殊字符中清除字符串,然后将其拆分为空格。使用此代码:

text = text.toLowerCase().replaceAll(/^\w/, ' ')
def tokens = text.split(" ")

我得到了

a me pla t

这远非有用。 我需要什么正则表达式?

谢谢! Mulone

2 个答案:

答案 0 :(得分:2)

这似乎对我有用(至少在这种情况下):

'Ça me plaît.'.toLowerCase().replaceAll( /[^\p{javaLowerCase}]/, ' ').split( ' ' )

答案 1 :(得分:0)

您可以使用\ S(大写字母S)代替\ w。 \ S匹配所有非白色字符,而\ s(非大写)匹配所有白色字符。

因此,你将拥有

text = text.toLowerCase().replaceAll(/^\S/, ' ')
def tokens = text.split(" ")