gpt4 book ai didi

java - 如何拆分字符串,只保留某些分隔符?

转载 作者:行者123 更新时间:2023-12-02 18:18:16 25 4
gpt4 key购买 nike

我有一个类似于 How to split a string, but also keep the delimiters? 的问题。如何使用正则表达式分割字符串,保留某些类型的分隔符,而不保留其他类型的分隔符?具体来说,我想保留非空白分隔符,但不保留空白分隔符。

为了具体说明:

"a;b c"        | ["a", ";", "b", "c"]
"a; ; bb c ;d" | ["a", ";", ";", "bb", "c", ";", "d"]

可以使用正则表达式干净地完成此操作吗?如果可以,如何完成?

现在,我正在通过拆分要保留的角色,然后再拆分另一个角色来解决这个问题。如果正则表达式不能这样做,或者不能干净地这样做,我可以坚持使用这种方法:

Arrays.stream(input.split("((?<=;)|(?=;))"))
.flatMap(s -> Arrays.stream(s.split("\\s+")))
.filter(s -> !s.isEmpty())
.toArray(String[]::new); // In practice, I would generally use .collect(Collectors.toList()) instead

最佳答案

我建议捕获你想要的内容,而不是使用这个简单的模式进行分割

([^; ]+|;)

Demo

关于java - 如何拆分字符串,只保留某些分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39059011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com