我在更换Java中的一些字符时遇到了很大的问题。我想删除所有不是字母,数字或特殊国家字符的字符,例如“ę,ą”。当我使用函数replaceAll("\W", " ")
时,也会删除特殊字符。
示例字符串:“Jestźle,alebędzielepiej。”
如何取代:“Jest le ale b dzie lepiej”
它应该如何:“Jestźlealebędzielepiej”
对不起我不太好的英语:)
答案 0 :(得分:0)
你的英语比Java的波兰语好。 Java的正则表达式不会说波兰语,所以它只考虑a..z“国家字符”(加上数字和下划线 - GREP显然是由程序员设计的)。这是公平的,可行的:一种语言的“正常”特征对另一种语言来说“怪异”。
您可以在自定义否定字符类中总结一些额外的非ASCII字符:
replace ("[^\wźę ]", " ");
(你应该添加其他重音字符,也许删除非波兰字符,如Q和X)。