Groovy Regex 用于匹配单词(即使带有重音字母)

发布于 2024-10-26 04:31:08 字数 337 浏览 2 评论 0原文

我正在尝试对任何文本中的单词进行标记,例如:

Ça me plaît.

应标记为“ça,me,plaît”。 为此,我想清除字符串中的所有特殊字符,然后将其拆分为空格。通过这段代码:

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

我得到了

a me pla t

Which 远没有用处。 我在这里需要什么正则表达式?

谢谢! 穆隆

I'm trying to tokenize words from any text, e.g.:

Ça me plaît.

Should be tokenized as "ça,me,plaît".
To do this, I want to clear the string from all special characters, and then split it on a whitespace. With this code:

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

I get

a me pla t

Which is far from being useful.
What regex do I need here?

Thanks!
Mulone

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心舞飞扬 2024-11-02 04:31:13

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

因此,你将拥有

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

You could use \S (capital S) instead of \w. \S matches all non-white characters, while \s (non-capital) matches all white characters.

Hence, you'll have

text = text.toLowerCase().replaceAll(/^\S/, ' ')
def tokens = text.split(" ")
关于从前 2024-11-02 04:31:12

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

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

This seems to work for me (at least for this situation):

'Ça me plaît.'.toLowerCase().replaceAll( /[^\p{javaLowerCase}]/, ' ').split( ' ' )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文