如何为这个表达式编写一个正则表达式

时间:2014-04-15 21:32:15

标签: java regex

我需要编写一个正则表达式,它只允许(ä,ö,ü,..)在数组中...下面的代码也允许数组中的空格......例如parts2[0]和{{1有空格,但应该是ö

parts2[1]

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