Groovy Regex для сопоставления слов (даже с ударными буквами) - PullRequest
1 голос
/ 23 марта 2011

Я пытаюсь токенизировать слова из любого текста, например:

Ça me plaît.

Должен быть маркирован как "ça, me, plaît".Для этого я хочу очистить строку от всех специальных символов, а затем разбить ее на пробел.С этим кодом:

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

Я получаю

a me pla t

Что далеко не полезно.Какое регулярное выражение мне нужно здесь?

Спасибо!Mulone

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Мне кажется, это работает (по крайней мере, в этой ситуации):

'Ça me plaît.'.toLowerCase().replaceAll( /[^\p{javaLowerCase}]/, ' ').split( ' ' )
0 голосов
/ 23 марта 2011

Вы можете использовать \ S (заглавная S) вместо \ w.\ S соответствует всем небелым символам, в то время как \ s (не заглавным) соответствует всем белым символам.

Следовательно, у вас будет

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