0
^[0-9]\\d*(\\.\\d+)?$

我不能完全弄清楚上面的正则表达式模式在寻找什么。但我不知道。

我的部分困惑源于这样一个事实,即在 SCJP6 认证书中,not 运算符包含在方括号内,而这里它在外面。另外,在正则表达式方面,我通常缺乏经验。

有人可以帮忙吗?[这是来自 Java 程序。以上是Java特有的吗?] 谢谢。

4

3 回答 3

3

^字符串的开头

[0-9]一个数字

\\d*任意数量的数字(0-无穷大)

(\\.\\d+)?一次,或根本没有:一个点后跟至少一个数字

$字符串的结尾。

您有一个复杂的正则表达式,它将匹配任何浮点数或非浮点数。

查看java.util.Pattern课程和Oracle Java Regex 教程

于 2013-01-07T11:10:40.100 回答
2

它正在寻找一个或多个数字,可选地后跟一个.和一个或多个数字。它令人困惑,因为它不必要地复杂。它与

^\\d+(\\.\\d+)?$

\d 定义为A digit: [0-9]

于 2013-01-07T11:11:59.167 回答
1

当“ ^”运算符在字符类“ []”之外时,它表示输入的开始,“ $”定义输入的结束。

所以你的描述是正确的,但应该改为:

找到从零到九的单个数字...

有关正则表达式的更多信息,请查看此链接

于 2013-01-07T11:10:47.220 回答