我需要编写一个正则表达式来捕获示例文本中的所有以下数字:
2.5
5
0.2
.5
假设小数点两边不会超过2位数,我使用什么正则表达式?
感谢。
答案 0 :(得分:13)
这应该有用。
(\d*\.?\d+)
这意味着
(
开始捕获群组\d*
任意数字零次或多次\.?
期间为零或一次(即可选)\d+
任何数字一次或多次)
结束捕获组它将匹配您列出的所有号码,并在$1
中捕获它们。
答案 1 :(得分:8)
这个正则表达式将完成这项工作(即小数点两边不超过2位)
^(?:\d{0,2}\.\d{1,2})$|^\d{1,2}$
<强>解释强>
^ # Begining of the string
(?: # begining of NON capture group
\d{0,2} # matches 0,1 or 2 digits
\. # decimal point
\d{1,2} # 1 or 2 digits
) # end of non capture group
$ # end of string
| # OR
^ # Begining of the string
\d{1,2} # 1 or 2 digits
$ # end of string
此正则表达式将匹配:
2.5, 5, 0.2, .5
但不是:
123.456, 256
答案 2 :(得分:5)