用不同的分隔符号拆分字符串的某些部分

Split certain parts of string with different divider signs

例如,如果我有:

String test = "test DE;IT;ES;CH;AU;FR";

使用 String[] split = test.split("\W"); 我可以拆分字符串并将字符串的各个部分放入一个数组中。

但是我想要的是,例如,如果我有相同的字符串:

String test2 = "test DE; IT;ES ;CH;AU;FR";

但这次中间有随机空格。我想保留这些空间。问题是,如果我只使用 ; 作为正则表达式,第一个词将是 test DE 而不是 test 是一个自己的字符串,而 DE 是一个自己的字符串。

所以我想要的数组结果在这种情况下是:[test,DE, IT,ES ,CH,AU,FR](我删除了逗号后的标准空格以使其更清楚)

您可以使用:

;|\b +\b

在线查看demo


import java.util.Arrays;

public class MyClass {
    public static void main(String args[]) {
      String test = "test DE; IT;ES ;CH;AU;FR";
      String[] split = test.split(";|\b +\b");
      System.out.println(Arrays.toString(split));
    }
}

打印:

[test, DE,  IT, ES , CH, AU, FR]

您可以使用环顾四周:

;|(?<!;) +(?!;)

https://regex101.com/r/e0ZtAa/1