gpt4 book ai didi

java - 正则表达式匹配以空格分隔的数字值,但整个字符串不以空格结尾

转载 作者:行者123 更新时间:2023-12-01 19:50:44 30 4
gpt4 key购买 nike

我实现了一个EditText,它允许输入由空格分隔的价格。价格可以是整数也可以是小数。

例如:

3900 156.2 140.38 200 10

所以,我找到了以下正则表达式:

(\d+([.]\d{1,2})?)+

但它仅适用于末尾有空格的情况。 (我知道这绝对是可以预料的)

是否可以使此正则表达式忽略输入字符串末尾的空格?

或者您可以提出其他建议吗?

谢谢。

最佳答案

我建议采用以下模式:

^\d+(?:\.\d+)?(?:\s+\d+(?:\.\d+)?)*$

用简单的英语来说,这表示匹配一个(可能)十进制数字,后跟一个或多个空白字符,以及另一个(可能)十进制数字,发生零次或多次。

查看下面的演示链接。

Demo

但是由于您使用的是 Java,我可以在这里建议一个替代方案。由于您可能必须访问每个数字,因此您可以按空格分割来自 EditText 的字符串,然后检查每个“数字”以确保它确实是一个数字。像这样的事情:

String input = "3900 156.2 140.38 200 10";
String[] nums = input.split("\\s+");
for (String num : nums) {
if (num.matches("\\d+(?:\\.\\d+)?")) {
// then process this as a number
}
}

关于java - 正则表达式匹配以空格分隔的数字值,但整个字符串不以空格结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383526/

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