2017-06-14 1067 views
-2

我需要一个正则表达式,其中数字不能以0开头。正则表达式在排序中不应该允许“.0”。
实施例:1.0, 1.0.1, 1.1.0正则表达式中的数字不应该以0开头

然而,该序列允许
实例:1, 1.10, 1.10.1

正则表达式我曾尝试是本([1-9]|([1-9]+)+(\.[1-9]+))$

并且输出是它未能直到2 “”在此之后失败,例如它将失败至1.0.0。然而,它在1.0.0.2匹配

+0

我想我知道你的意思,但你应该知道,'1.10.101.11.10.1'不是十进制值的既不是'1.1.0'。两者都使用数字和点,但这并不是十进制数。你需要更精确。 –

+1

而你的问题是......? – EJoshuaS

+1

到目前为止您尝试过什么? – Brydenr

回答

2

我的答案采取将

([1-9][0-9]*)(\.([1-9][0-9]*))* 

它将完全一致选择作为海报介绍,用一系列句点分隔的整数,其中每个整数不以0开头的。

如果应用程序需要的选择是在一行的开始,我会建议增加一个符号(^)作为正则表达式的第一个字符。

+0

为了帮助OP理解这里发生了什么,我已经在下面的伪代码中提供了我提供的路线。 找到1到9之间的数字 找到0或9之间0或9的数字 循环 检查一段时间。如果找到一个,重复开始代码来 搜索0之间的非零数字和零个或多个号码 - 9. 如果上述失败,停止循环。 – gsharpe

相关问题