java - Java实数的正则表达式

标签 java regex

我试图编写一个简单的正则表达式来匹配实数,如下所示:

[+-]?[\\d]+[\\.]?[\\d]*

正则表达式序列的说明 - 可选的 + 或 - 符号,1 个或多个数字,可选句点,0 个或多个数字

问题是,如果字符串中包含单个数字,则它匹配字符串(例如,找到 abc23 的匹配项)。但我只想匹配实数。

最佳答案

matches 方法中使用以下正则表达式。

[+-]?\\d+(?:\\.\\d+)?

代码:

System.out.println("abc".matches("[+-]?\\d+(?:\\.\\d+)?"));
System.out.println("abc123".matches("[+-]?\\d+(?:\\.\\d+)?"));
System.out.println("12.".matches("[+-]?\\d+(?:\\.\\d+)?"));
System.out.println("+65657".matches("[+-]?\\d+(?:\\.\\d+)?"));
System.out.println("-8.99".matches("[+-]?\\d+(?:\\.\\d+)?"));

输出:

false
false
false
true
true

第三个示例的输出为 false,因为数字以点结尾。我认为这不太正确。

关于java - Java实数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25830036/

相关文章:

java - JPA SubGraph 定义嵌入式属性的 fetchtype

java - 为什么 Java 将字符串放在单词之前而不是之后?

Java int 转 char 输出真的很奇怪

c# - 查找具有指定首字母的单词(正则表达式)

java - 使用正则表达式进行密码验证

regex - 在 Postgresql 中用大写版本替换正则表达式匹配的文本

php - 如何使用 preg_replace() 将 rel ="nofollow"添加到链接

java - 使用 'debugUnreturnedConnectionStackTraces' 调试连接丢失

java - 如何从jframe捕获图像?(太快)

java - 从 astatic 类获取应用程序