我正在尝试使用正则表达式来允许以下
1
1.1
9.9
9
但不允许1.11或9.97或9,7
有人可以帮助我吗?
我试过这个'/[0-9]+(\.[0-9]?)?/'
,但仍然允许1.11
答案 0 :(得分:1)
'/[0-9]{1,}.[0-9]/'
这也应该有效
答案 1 :(得分:1)
您的正则表达式与您描述的模式匹配,但无法排除您不想匹配的模式。 1.1
中的1.11
部分与您的正则表达式匹配。要排除1.11
,您可以添加到正则表达式,字符串必须在第一个小数后面结束:^\d+(\.\d)?$
。
\d
匹配任何数字;你必须逃避.
,否则它会匹配任何角色;并且$
表示'字符串结尾'。如需快速参考,您可以查看this。
从逻辑上讲,问题也发生在正则表达式的开头,你肯定会匹配a1.1
。特殊字符^
表示“字符串的开头”。
符合您需求的正则表达式将是:
^\d+(\.\d)?$
答案 2 :(得分:0)
这个应该有效
LOCAL_CFLAGS
你接近你的例子,只需要声明字符串的开头和结尾。
答案 3 :(得分:0)
'/\A\d[.]\d\z/'
\ A:字符串的开头
\ d:任意数字
[。]:单个字符“。”
\ d:任意数字
\ z:字符串的结尾