gpt4 book ai didi

java - 正则表达式从字符串中获取数字的第一个实例

转载 作者:行者123 更新时间:2023-12-02 10:58:53 49 4
gpt4 key购买 nike

我从网页返回以下字符串

Order Number: 1509596 Customer Number: 8

但也有可能

Order ID 1509596 Customer 8

我想使用正则表达式,所以在我的方法中我只返回订单号,我正在做

orderNumber.replaceAll("[^0-9]", "")

但这显然行不通,因为我的订单号末尾有一个 8。有人可以帮助我如何只需要订单号,因为我在 reg ex 很垃圾!

字符串的长度始终为 50 个字符,但订单号是动态的,所以我不知道它有多长,是否可以只返回字符串中的第一个数字?

最佳答案

使用匹配整个输入的正则表达式,捕获您想要的部分,然后替换捕获的所有内容以“提取”您想要的内容。

String firstNumber = str.replaceAll("^\\D*(\\d+).*", "$1");

参见live demo .

正则表达式匹配所有前导非数字(如果有),然后匹配接下来找到的与捕获组 1 一样多的数字,然后匹配到末尾。 $1 是捕获组 1 的反向引用

<小时/>

如果输入中有换行符(默认情况下点不匹配),请通过将 (?s) 添加到正则表达式来启用 D​​OTALL 标志:

String firstNumber = str.replaceAll("(?s)^\\D*(\\d+).*", "$1");

关于java - 正则表达式从字符串中获取数字的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21427608/

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