每次输入数字/小数点时,我需要弄清楚如何使正则表达式正确匹配。我想限制小数点前后的位数,这不是太难,但我不知道如何让小数点也匹配。
1 - match
12 - match
1234 - match
12345 - wrong
1234. - match
1234.1 - match
1234.12 - match
1234.123 - wrong
Other matched numbers
12.12
1.0
123.99
编辑:
所以我希望小数点前最多4个数字,之后需要2个数字。小数位也是可选的。
棘手的部分是,如果第五个字符不是小数点,我希望它失败。
答案 0 :(得分:1)
您需要更好地指定约束;我假设您希望在点之前最多4个,在之后最多2个:
/^\d{1,4}(\.\d{0,2})?$/
编辑:我添加了字符串匹配器的开头和结尾。应该按你想要的那样工作
答案 1 :(得分:0)
这样的事情会有所帮助
r'^\d{1,4}(\.\d{0,2})?$'
你必须知道,\ d代表一个数字,。小数点和{min_required,max_required}。请务必在使用正则表达式之前测试它们here.
答案 2 :(得分:0)
您可以使用以下正则表达式仅选择由数字组成且满足您条件的单词。
/(?<=^|\s)\d{1,4}(?:\.\d{0,2})?(?=\s|$)/g
使用正向前瞻和后瞻来确保数字周围有空格。