[英]split regex with optional delimiters
〜分隔文本字段〜和^分隔所有字段
输入的字符串(字段可以为空)
~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
空行应为“”
使用此正则表达式匹配所需的数据:
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
替换~(.*?)~
或使用基本检测( charAt
)和操作( subString
)
尚不清楚〜的处理方式,但看起来很简单,只需将两个字符都作为分割字符即可:
String b[] = str.split("[\\^~]");
它实际上忽略了所有〜和^字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.