首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在复杂分隔符上有条件地拆分字符串

在复杂分隔符上有条件地拆分字符串
EN

Stack Overflow用户
提问于 2016-05-09 12:27:24
回答 4查看 635关注 0票数 1

我有以下字符串:

1,2,3-5-5-4-5-8

我要这样的输出:

1,2,3-5 4,5,x-8

如何使用java实现这一点?

我的意思是与","分离,但前提是它是在"|"之后。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-09 12:37:33

添加一个正向后视条件,例如:

代码语言:javascript
复制
"1,2,3|5,4,5|8".split("(?<=\\|\\d{1,10}),"))

Lookbehind条件(?<=\\|\\d{1,10})的意思是:|后跟10位数字(因为查找需要定义最大长度,不能使用+*等无界的重复修饰符)。

票数 4
EN

Stack Overflow用户

发布于 2016-05-09 12:37:34

一种方法是使用lookbehind:

代码语言:javascript
复制
for (String s : "1,2,3|5,4,5|8".split("(?<=\\|\\d{1,20}),")) {
    System.out.println(s);
}

上述指纹

代码语言:javascript
复制
1,2,3|5
4,5|8

请注意,Java regex有一个限制,即查找器必须有一个明显的上长度。因此,您需要使用\\d{1,20}来代替更自然的\\d+

演示。

票数 3
EN

Stack Overflow用户

发布于 2016-05-09 12:36:28

你可以:

代码语言:javascript
复制
split("(?<=\\|[0-9]),")

在此:

  • (?<=\\|[0-9])
    • ?<=表示正向后。
    • \\|[0-9]表示在,之前有一个\和一个数字。

  • ,,匹配
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37115818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档