当java不应该拆分字符串时,我可以给Java一个正则表达式吗?

时间:2015-10-15 17:09:58

标签: java regex

我可以给String.split方法一个参数,告诉它何时不能拆分给定的字符串?在我的特定情况下,我有包含大量文本和符号的文本文档。但是在每个文件中都有许多不同的符号。这就是我想要实现的目标:

string.split(not(A-Z,ß,ä,ö,ü));

基本上,我希望String.split只有在找到不属于德语字符集的字符时才会拆分。

我希望你能帮助我。

2 个答案:

答案 0 :(得分:2)

正则表达式中有三个令牌可以让您完全按照自己的意愿完成:

  • []创建一个包含内部列出的所有字符的字符类。在您的特定情况下,您希望此为[a-zßäöü],因为此字符组包含所有字符azßäöü
  • ^否定了字符类的内容。因此,使用上面的字符类,如果你想匹配任何不属于字符组的字符,你可以使用[^a-zßäöü]
  • 此外,在正则表达式前面添加(?i)会使其 敏感,这样您的表达式也可以与大写字母匹配,而无需将它们实际添加到你的表达。

因此,将这三个标记一起添加,您将获得正则表达式(?i)[^a-zßäöü]。现在唯一剩下的就是将它们放入String.split方法中,然后你就完成了:

string.split("(?i)[^a-zßäöü]");

答案 1 :(得分:0)

Mr.Human,

如果我正确理解你的问题,你想在非德语字符上拆分一个字符串吗?

所以,

abcdöyüp

变为

a, b, c, dö, yü, p

如果是这种情况,那么很遗憾,您需要指定非德语的字符集,例如[A-Z]分开。如果您正在尝试完成除此之外的其他事情,请澄清和/或提供示例。