从Java中固定格式的字符串中提取数字

我有一串格式:

"A hr B min to C hr D min"

其中 A、B、C、D 将是整数。我想从这个字符串中提取 A、B、C、D。A、B、C、D 可以是单个或多位整数,我现在并不真正关心验证(例如 C、D 理想情况下在 0 到 59 之间),因为可以稍后处理。

在 Java 中实现这一目标的最佳方法是什么?

回答

假设此文本可能出现在较大的文本中,并且您的目标短语可能重复多次,我们可以尝试匹配以下模式:

b(d+) hr (d+) min to (d+) hr (d+) minb

这是一个示例 Java 代码:

String input = "blah blah 1 hr 5 min to 2 hr 10 min blah blah";
String regex = "b(d+) hr (d+) min to (d+) hr (d+) minb";
Pattern r = Pattern.compile(regex);
Matcher m = r.matcher(input);

while (m.find()) {
    System.out.println("Found values: (" + m.group(1) + ", " + m.group(2) + ", " +
        m.group(3) + ", " + m.group(4) + ")");
}

这打印:

Found values: (1, 5, 2, 10)


以上是从Java中固定格式的字符串中提取数字的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>