【发布时间】:2018-06-10 19:49:38
【问题描述】:
我在 Linux 上,我需要做一个 expr 才能匹配 6 位 与此 range : 000001 到 999999
我坚持使用'[0-9]{5}[1-9]',但我无法匹配以 0 结尾的数字,例如 000010
我在考虑'[0-9]{6}|?![0]{6}',以消除“000000”
如何使用?! 和/或有其他解决方案吗?
编辑:解决方案 = ((?!000000)[0-9]{6})
【问题讨论】:
-
你在使用 bash
=~运算符吗?最终目标是什么? -
不清楚你想做什么。如果您正在验证,您可以尝试以下答案,或者您可以尝试
^(0{5}[1-9]|0{4}[1-9][0-9]|000[1-9][0-9]{2}|00[1-9][0-9]{3}|0[1-9][0-9]{4}|[1-9][0-9]{5})$ -
^(000001|000002|000003|...|999998|999999)$填写...留作练习。 -
你在想什么
?![0]{6}?你的意思是像grep -P '^(?!0*$)\d{6}$' -
这将工作 [0-9]{5}[1-9]{1}