我有一个像
这样的字符串list1<^0.1>list2<#0.2>list3
我希望将其拆分为
数组list1, <^0.1>, list2, <#0.2>, list3
我正在做的是
String[] parts = str.split("((?<=<[^#][\\d\\.]+>)|(?=<[^#][\\d\\.]+>))");
但它不起作用。 我错过了吗?感谢
答案 0 :(得分:4)
您可以按如下方式修改外观断言:
String s = "list1<^0.1>list2<#0.2>list3";
String[] parts = s.split("(?<=>)|(?=<)");
System.out.println(Arrays.toString(parts));
输出
[list1, <^0.1>, list2, <#0.2>, list3]
答案 1 :(得分:1)
您可以通过此正则表达式进行拆分:
(?<=>)|(?=<)
<强>代码:强>
String[] toks = "list1<^0.1>list2<#0.2>list3".split( "(?<=>)|(?=<)" );
for (String tok: toks)
System.out.printf("<%s>%n", tok);
输出:
<list1>
<<^0.1>>
<list2>
<<#0.2>>
<list3>
答案 2 :(得分:0)