【问题标题】:Regex -> match a number between 000001 and 999999正则表达式 -> 匹配 000001 到 999999 之间的数字
【发布时间】: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})

【问题讨论】:

标签: regex linux bash shell


【解决方案1】:

使用正则表达式检查一个数字是否在一个范围内并不是最优的。相反,您可以检查您的输入长度,如果它在范围内,使用

a=000001
if ((${#a} == 6 && a > 0 && a <= 999999));  then
  echo "foo"
fi

【讨论】:

    【解决方案2】:

    解决方案 = ((?!000000)[0-9]{6})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 2016-09-02
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多