我一直试着找一个我需要的正则表达式。 之前有3个字符。和小数点后的两个字符。
我试试这个
[+ -]?[0-9]{0,3}[.]?[0-9]{0,2} # but accepted as 55555 or the
[+ -]?[0-9]{0,3}[.][0-9]{0,2} # but this is not accepted as the 44
有人能帮助我吗?
答案 0 :(得分:3)
答案 1 :(得分:3)
55555
,因为您只选择了小数点,并且{2}在您的秒中不匹配,因为您只使小数点不可选。你想要做的是使小数位和以下数字都是可选的。
您还需要锚定匹配,否则44
,123
和45.12
将匹配345
。
如果要验证字符串,请使用以下代码:12345.12345
说明:
^[-+]?[0-9]{1,3}(\.[0-9]{1,2})?$
尝试here!
进一步说明:
这只匹配符合模式的字符串,即^ # Match the start of string
[-+]? # Optional plus or minus
[0-9]{1,3} # Followed by 1 - 3 digits
(\.[0-9]{1,2})? # Optionally followed by decimal place (escaped \) & 1-2 digits
$ # Match the end of the string
如果您想匹配字符串中的模式,即123.34
而不是使用I am 123.34 cm tall
和(^|\s)
作为锚点:
(\s|$)
哪一行与(^|\s)[-+]?[0-9]{1,3}(\.[0-9]{1,2})?(\s|$)
行^
的任何空格|
匹配,与行\s
的结尾相同。匹配将包含空格,因此请记住$
以便在需要时删除它们。
答案 2 :(得分:0)
您可以尝试这样的事情: -
^?[0-9]{1,3}([.][0-9][0-9]?)?
或
\d+(\.\d{1,2})?