Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与最大小数点后2位的数字匹配的正则表达式_Java_Android_Regex_Numbers - Fatal编程技术网

Java 与最大小数点后2位的数字匹配的正则表达式

Java 与最大小数点后2位的数字匹配的正则表达式,java,android,regex,numbers,Java,Android,Regex,Numbers,我正在用java/android编写一个简单的代码 我想创建与以下内容匹配的正则表达式: 0 123 123,1 123,44 并在逗号后的第二个数字后切下所有内容 我的第一个想法是这样做: ^\d+(?(?=\,{1}$)|\,\d{1,2}) ^ - from begin \d+ match all digits ?=\,{1}$ and if you get comma at the end do nothin else grab two more digits after

我正在用java/android编写一个简单的代码

我想创建与以下内容匹配的正则表达式:

0
123
123,1
123,44
并在逗号后的第二个数字后切下所有内容

我的第一个想法是这样做:

^\d+(?(?=\,{1}$)|\,\d{1,2})

 ^ - from begin
 \d+ match all digits
 ?=\,{1}$ and if you get comma at the end
 do nothin
 else grab two more digits after comma
但它不匹配没有逗号的数字;我不明白正则表达式有什么问题。

您可以使用

^(\d+(?:,\d{1,2})?).*
并替换为
$1
。看

详细信息

  • ^
    -字符串的开头 -
    (\d+(?:,\d{1,2})
    -捕获组1匹配:
    • \d+
      -一个或多个数字
    • (?:,\d{1,2})
      -可选序列:
      • -逗号
      • \d{1,2}
        -1或2位数字
  • *
    -匹配且未捕获的行的其余部分,因此将被删除
    • 此处:

      ,{1}
      
      说:正好一个“,”

      尝试:


      例如。

      基本正则表达式:
      [0-9]+[,]*[0-9]+

      如果要指定最小最大长度,请使用:


      [0-9]{1,3}[,]*[0-9]{0,2}

      仅供参考:别忘了在Java/Android string Literals中加倍反斜杠Hans man它让我摆脱了代码中许多看起来非常难看的if-else语句:)
      ,{0,1}