我有一根这样的线

length 10 cm width 2 cm depth 0.5 cm / length 10 cm width 2 depth 0.5 cm

我想要像这样的输出

length 10 cm
width 2 cm / width 2
depth 0.5 cm   

我试过这个

public static void main(String []args) {
    String s = "length 10 cm width 2 cm depth 0.5 cm";
    String[] tok = s.split("(?<=\\d)\\s");
    for(int i=0; i< tok.length; i++) {
        System.out.println(tok[i]);
    }
}

它返回:

length 10
cm width 2
cm depth 0.5
cm

推荐答案

试试下面的match pattern条.

(?: (?<![/*+-] )(?=length|width|depth))

输出

length 10 cm
width 2 cm
depth 0.5 cm / length 10 cm
width 2
depth 0.5 cm

Java相关问答推荐

Android视图覆盖不阻止点击它后面的控件

无法找到符号错误—Java—封装

最小拓Flutter 排序的时间复杂度是多少?

scanner 如何在执行hasNextLine一次后重新读取整个文件?

同时运行JUnit测试和Selenium/Cucumber测试时出现问题

只需最少的代码更改即可将版本号标记添加到日志(log)

GSON期间的Java类型擦除

在Java 17中使用两个十进制数字分析时间时出错,但在Java 8中成功

如何在不删除Java中已有内容的情况下覆盖文件内容?

允许同时执行两个方法,但不能同时执行这两个方法

Regex以查找不包含捕获组的行

为什么StandardOpenOption.CREATE不能通过Ubuntu在中小企业上运行?

S数学.exp的相同错误保证也适用于StrictMath.exp吗?

JavaFX:无论何时显示应用程序,如何更改组件/ node 位置?

具有多个模式的DateTimeForMatter的LocalDate.parse失败

在Oracle中调用输出参数在索引处缺少IN或OUT参数的函数

Intellij 2023 IDE:始终在顶部显示菜单栏

由于可为null,无法在kotlin中实现java接口

Java 21保护模式的穷尽性

message.acknowledge()没有';在使用Spring Boot在ActiveMQ中读取消息后,t将消息出列