我在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
但是没有逗号就不匹配数字;而且我不明白正则表达式有什么问题。
答案 0 :(得分:4)
您可以使用
^(\d+(?:,\d{1,2})?).*
并替换为$1
。请参阅regex demo。
<强>详情:
^
- 字符串的开头
- (\d+(?:,\d{1,2})?)
- 捕获第1组匹配:
\d+
- 一个或多个数字(?:,\d{1,2})?
- 可选序列:
,
- 逗号\d{1,2}
- 1或2位数字.*
- 匹配且未捕获的其余行,因此将被删除。答案 1 :(得分:2)
下面:
,{1}
说:恰好是一个&#34;,&#34;
尝试:
,{0,1}
例如。
答案 2 :(得分:1)
基本正则表达式:[0-9]+[, ]*[0-9]+
如果您想指定最小最大长度,请使用:
[0-9]{1,3}[, ]*[0-9]{0,2}