有没有办法编写匹配
等字符串的正则表达式(0|[1-9][0-9]*)\.[0-9]+
但具有指定数量的数字字符。例如:对于3个数字字符,它应匹配“0.12”,“12.3”但不匹配“1.234”或“1.2”。我知道我可以写出像
这样的东西(?<![0-9])(([0-9]{1}\.[0-9]{2})|([1-9][0-9]{1})\.[0-9]{1})(?![0-9])
但是对于大量数字而言,这变得相当繁琐。
(我知道我不需要{1},但它更好地解释了我在做什么)
答案 0 :(得分:0)
^(?=[\d.]{4}$)\d+\.\d+$
你可以尝试3
位数。可以扩展更多。参见演示。
https://regex101.com/r/bN8dL3/4
或
\b(?=[\d.]{4}\b)\d+\.\d+\b
如果你不想要anchors
。
答案 1 :(得分:0)