〜单独的文本字段〜和^分隔所有字段
输入的字符串(字段可以为空)
~01001~^~0100~^~Butter, salted~^~BUTTER,WITH SALT~^~~^~~^~Y~^~~^0^~~^6.38^4.27^8.79^3.87
我目前的分裂
String [] splited = str.split("\\^",-1);
for (String s : splited){
System.out.println (s);
}
输出
~01001~
~0100~
~Butter, salted~
~BUTTER,WITH SALT~
~~
~~
~Y~
~~
0
~~
6.38
4.27
8.79
3.87
如何更改正则表达式以便~~不包括在内? (空字段很好)
我希望输出
01001
0100
Butter, salted
BUTTER,WITH SALT
Y
0
6.38
4.27
8.79
3.87
空行应为“”
答案 0 :(得分:1)
使用此正则表达式匹配您想要的数据:
Pattern p = Pattern.compile("~([^~]*)~|([^\\^]+)");
使用Matcher
API获取匹配的数据。
Matcher m = p.matcher(input);
while (m.find()) {
System.out.println(m.groupCount() == 2 ? m.grop(2) : m.grop(1));
}
答案 1 :(得分:0)
分裂不适合摆脱那些倾斜。您需要将~(.*?)~
替换为\1
或使用基本检测(charAt
)和操作(subString
)
答案 2 :(得分:0)
目前还不清楚如何对待〜,但看起来很简单,只需将两个角色都作为一个分裂角色:
String b[] = str.split("[\\^~]");
基本上忽略了所有〜和^字符。