显然,当我使用 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(使用前将#替换为@)