我需要编写一个正则表达式,它只允许(ä,ö,ü,..)在数组中...下面的代码也允许数组中的空格......例如parts2[0]
和{{1有空格,但应该是ö
parts2[1]
答案 0 :(得分:3)
您可以使用Java的Pattern.replaceAll
功能。
String str= "geliyoru mamaadsödsödösdä dädsdäsfäfsä yüwüsüdsüfsäfsfä";
Pattern p = Pattern.compile("[^\u00E4\u00F6\u00FC]*");
String result = p.matcher(str).replaceAll("");
在[^
和]
之间的模式中,您应该使用unicode定义枚举您希望保留的所有字符。您可以使用Google / DuckDuckGo查看它们。方括号之间的^
部分可以反转匹配。因此,组中不存在的所有字符都是匹配的。在最后一行中,所有这些字符都被空字符串替换。
为了提高性能,我在正则表达式的末尾添加了*
,这样一组字符就匹配为一个,因此只需要替换一次。
你可以看到一个jdoodle here