java - 正则表达式检查 Android 中的多个条件

标签 java regex

我需要使用Regex验证EditText值。 条件:

  1. 用户可以输入无符号整数
  2. 用户可以输入浮点值。

我已经使用两种不同的模式实现了这一点,但我不知道如何在单个正则表达式中检查这两个模式。

我使用了以下正则表达式

public boolean validFloatForString(String value) {
        String decimalPattern = "([0-9]*)\\.([0-9]*)";
        String integerPattern = "([0-9]*)";
        boolean match = Pattern.matches(decimalPattern, value)
                || Pattern.matches(integerPattern, value);
        System.out.println(match); // if true then decimal else not
        return match;
    }

最佳答案

您的模式 String DecimalPattern = "([0-9]*)\\.([0-9]*)" 将匹配 .,而 integerPattern 将始终匹配。这是因为 * 表示 0 或更多。 我会使用类似的东西

String pattern = "^([0-9]+(?:\\.[0-9]*)?)";

匹配无符号整数和 float 。

编辑 1

也匹配以 开头的无符号 float 。

String pattern = "\\b([0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)\\b";

我还用单词边界 \\b 替换了 ^(表示要匹配的字符串的开头)。

关于java - 正则表达式检查 Android 中的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18380924/

相关文章:

java - 如何在JTextField中添加弹出组件

java - 在自定义 Controller 中保存 Spring Data Rest JPA 实体并返回 HAL 表示

c - 从C语言的文本文件中读取格式化数据

php - MySQL 使用 RegEx 更新/选择列

ruby - RE2 正则表达式中如何使用命名捕获组?

c# - 从另一个程序的文本字段中插入和检索文本的方法

java - Java线程同步问题

java - 如何在人物后面创建轨迹 - BIG WORLD [2D、LIBGDX、JAVA]

ruby 正则表达式 : complex pattern

javascript - 如何使用基本运算符检查字符串的数学表达式?