从Java中的字符串中删除所有非“单词字符”,留下重音字符?

2024-01-10

显然,当我使用 Regex 时,Java 的 Regex 风格将变音符号和其他特殊字符计为非“单词字符”。

        "TESTÜTEST".replaceAll( "\\W", "" )

为我返回“TESTTEST”。我想要的是只删除所有真正的非“单词字符”。任何方法都可以做到这一点,而无需遵循以下内容

         "[^A-Za-z0-9äöüÄÖÜßéèáàúùóò]"

才意识到我忘了 ô?


Use [^\p{L}\p{Nd}]+- 这匹配所有既不是字母也不是(十进制)数字的(Unicode)字符。

In Java:

String resultString = subjectString.replaceAll("[^\\p{L}\\p{Nd}]+", "");

Edit:

我变了\p{N} to \p{Nd}因为前者还匹配一些数字符号,例如¼;后者则不然。看到它正则表达式101.com http://regex101.com/r/lP8pG9.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从Java中的字符串中删除所有非“单词字符”,留下重音字符? 的相关文章

随机推荐