我有以下字符串:
1,2,3-5-5-4-5-8
我要这样的输出:
1,2,3-5 4,5,x-8
如何使用java实现这一点?
我的意思是与","分离,但前提是它是在"|"之后。
发布于 2016-05-09 12:37:33
添加一个正向后视条件,例如:
"1,2,3|5,4,5|8".split("(?<=\\|\\d{1,10}),"))Lookbehind条件(?<=\\|\\d{1,10})的意思是:|后跟10位数字(因为查找需要定义最大长度,不能使用+或*等无界的重复修饰符)。
发布于 2016-05-09 12:37:34
一种方法是使用lookbehind:
for (String s : "1,2,3|5,4,5|8".split("(?<=\\|\\d{1,20}),")) {
System.out.println(s);
}上述指纹
1,2,3|5
4,5|8请注意,Java regex有一个限制,即查找器必须有一个明显的上长度。因此,您需要使用\\d{1,20}来代替更自然的\\d+。
演示。
发布于 2016-05-09 12:36:28
你可以:
split("(?<=\\|[0-9]),")在此:
(?<=\\|[0-9]) 中?<=表示正向后。\\|[0-9]表示在,之前有一个\和一个数字。
,与,匹配https://stackoverflow.com/questions/37115818
复制相似问题