我想分隔一个字符串,但保留除空格之外的分隔符。
此外,我不想分隔像 asda45a
这样的单词或asd6ad
.
这是分隔符列表:
private static String delimits="[{;}(),#<>*+-=/ ]+";
我试过String[] List = o.split("(?<="+delimits+")|(?="+delimits+")");
最佳答案
您需要调整您的 delimits
模式以排除空格(因为您不想在结果中保留空格分隔符)并将 -
放在末尾表达式中的字符类,它形成 +
和 =
之间的范围。然后,只需添加 | +
主正则表达式的替代方案:
String delimits="[{;}(),#<>*+=/-]+";
String o = "asda45a or-ro asd6ad";
String[] lst = o.split("(?<="+delimits+")|(?="+delimits+")| +");
System.out.println(Arrays.toString(lst));
// => [asda45a, or, -, ro, asd6ad]
如果您想用任何空格分隔,请替换 | +
与 |\\s+
。
关于java - 分隔字符串,java用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40450074/