gpt4 book ai didi

java - 为什么 "3.5".matches ("[0-9]+") 返回 false?

转载 作者:行者123 更新时间:2023-12-01 06:36:07 24 4
gpt4 key购买 nike

我使用方法String.matches(String regex)来查找字符串是否与正则表达式匹配

从我的角度来看,正则表达式 regex="[0-9]+" 表示一个至少包含 0 到 9 之间的数字的字符串

但是当我调试 "3.5".matches("[0-9]+") 时,它返回 false。

那么到底出了什么问题呢?

最佳答案

matches 确定正则表达式是否匹配整个字符串。如果字符串包含匹配项,则不会返回true

要测试字符串是否包含与给定正则表达式的匹配项,请使用Pattern.compile(regex).matcher(string).find()

(您的正则表达式 [0-9]+ 将匹配仅包含从 0 到 9 的数字且至少包含一位数字的任何字符串。它不会神奇地与任何实数匹配.如果您想要匹配任何实数的东西,请查看例如 Javadoc for Double.valueOf(String) ,它指定了用于验证 double 的正则表达式。该正则表达式允许十六进制输入,NaN 和无穷大,但它应该让您更好地了解需要什么。 )

或者,编辑正则表达式,使其直接匹配包含一个或多个数字的任何字符串,例如.*[0-9]+.* 就可以完成这项工作。

关于java - 为什么 "3.5".matches ("[0-9]+") 返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11691917/

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