用不同的分隔符号拆分字符串的某些部分
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]
您可以使用环顾四周:
;|(?<!;) +(?!;)
例如,如果我有:
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]
您可以使用环顾四周:
;|(?<!;) +(?!;)