Java 从00001到99999的正则表达式
我正在使用正则表达式,我想要从Java 从00001到99999的正则表达式,java,regex,Java,Regex,我正在使用正则表达式,我想要从00001到99999的数字。它应该有5个数字 我知道我可以使用[0-9]{5},但我有编号00000,但它应该从00001开始 (?!00000)[0-9]{5} 说明: 负前瞻(?!00000)-断言正则表达式与它不匹配 [0-9]介于0和9之间的单个字符 {5} 精确匹配5次 说明: 负前瞻(?!00000)-断言正则表达式与它不匹配 [0-9]介于0和9之间的单个字符 {5} 精确匹配5次 前缀(?!00000)可确保不匹配;这叫做消极前瞻。 现场
00001
到99999
的数字。它应该有5个数字
我知道我可以使用[0-9]{5}
,但我有编号00000
,但它应该从00001
开始
(?!00000)[0-9]{5}
说明:
- 负前瞻(?!00000)-断言正则表达式与它不匹配
- [0-9]介于0和9之间的单个字符
- {5} 精确匹配5次
- 负前瞻(?!00000)-断言正则表达式与它不匹配
- [0-9]介于0和9之间的单个字符
- {5} 精确匹配5次
(?!00000)
可确保不匹配;这叫做消极前瞻。
现场演示
前缀(?!00000)
可确保不匹配;这叫做消极前瞻。
实时演示。这个相当难看的regexp要求5位数字中至少有一位不是零。因此,唯一失败的5位数字是00000。但我认为一定有更优雅的方式
^([1-9]\d{4}\d[1-9]\d{3}\d{2}[1-9]\d{2}\d{3}[1-9]\d{4}[1-9])$
这个相当难看的regexp要求5位数字中至少有一位不是零。因此,唯一失败的5位数字是00000。但我认为一定有更优雅的方式
^([1-9]\d{4}\d[1-9]\d{3}\d{2}[1-9]\d{2}\d{3}[1-9]\d}\d{4}[1-9])$
[0-9]{4}[1-9]
?@Maroun10000/code>这不是最好的解决方案吗?如果你转换成一个实际的数字,你只需检查它是否是=1
和@jornsharpe啊,误解了OP的问题。[0-9]{4}[1-9]
?@Maroun10000
呢?也许regex不是最好的解决方案?如果你转换成一个实际的数字,你只需检查它是否是=1
和@jornsharpe啊,误解了OP的问题。它是否匹配1
?如果它适合你并且在类似答案之前出现,你可以将它标记为答案:)它是否匹配1
?如果它适合你并且在类似答案之前出现,您可以将其标记为答案:)非常感谢,这很有效!谢谢你的解释非常感谢,这很有效!谢谢你的解释
(?!00000)[0-9]{5}