我从网页
返回以下字符串Order Number: 1509596 Customer Number: 8
但它也可能是
Order ID 1509596 Customer 8
我想使用正则表达式,所以在我的方法中我只返回订单号,我正在做
orderNumber.replaceAll("[^0-9]", "")
但这显然不起作用,因为我的订单号末尾有一个8。有人可以帮我解决订单号码,因为我在reg ex垃圾!
字符串总是50个字符,但订单号是动态的,所以我不知道它会有多长,是否可以只返回字符串中的第一个数字?
答案 0 :(得分:6)
String firstNumber = str.replaceAll("^\\D*(\\d+).*", "$1");
答案 1 :(得分:1)
我想不出能够实现这一目标的单行,但以下内容应该有效:
String orderString = "Order Number: 1509596 Customer Number: 8";
Pattern p = Pattern.compile("[0-9]+");
Matcher m = p.matcher(orderString);
if (m.find())
{
String orderNr = m.group();
System.out.println(orderNr);
}
答案 2 :(得分:1)
如果您更改orderNumber.replaceAll("[^0-9]", "")
到
orderNumber.replaceAll("[^0-9]", ",")
因此
你会得到,1509596,8
作为答案,
我认为这可能有助于你解决问题。