如何解决整个正则表达式模式的长度
我尝试检测一个值是最大长度为10个字符的int还是float。
我最好的解决方法是sudo apt install openjdk-8-jre-headless
,但10个字符的最大长度不适用于浮点数。
在另一种解决方案(^[0-9]{0,10}$|^([0-9]+\.[0-9]+){1,10}$)
中,可以使用最大长度,但是如果值以“。”开头或结尾,则正则表达式看起来有效。
如何控制整个图案的长度?
解决方法
在这里我将使用一个替代来覆盖整数(无小数点)和浮点数(有小数点):
^(?:\d{1,10}|(?![\d.]{11,})\d+\.\d+)$
Demo
以下是上述正则表达式的细目分类:
^ from the start of the input
(?:\d{1,10} match 1 to 10 digits,no decimal point
| OR
(?![\d.]{11,}) assert that we DON'T see more than 10 digits/decimal point
\d+\.\d+) then match a floating point number (implicitly 10 chars max)
$ end of the input
,
如果您的正则表达式引擎前瞻性很强,您可以
(?=^.{1,10}$)(^[0-9]+(\.[0-9]+)?$)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。