【问题标题】:Allow only one number in grep Regexgrep Regex 中只允许一个数字
【发布时间】:2021-09-12 22:07:48
【问题描述】:

我必须接受只有一个数字的字符串,字符串的内容无关紧要,它只需要是一个数字。

我正在尝试这样的事情:

echo "exaaaamplee1" | grep '[0-9]\{1\}'

这个字符串被接受,但这个字符串也被接受:

echo "exaaaamplee11" | grep '[0-9]\{1\}'

【问题讨论】:

    标签: regex grep


    【解决方案1】:

    您可能想使用[^0-9] 之类的东西。这表示除数字 0-9 之外的任何字符,您可以使用 [0-9](或 \d)作为允许的一位数字。

    ^[^0-9]*[0-9][^0-9]*$ 这样的东西应该匹配任何只有一位数字的字符串。 (^ 是字符串的开头,$ 是字符串的结尾)

    【讨论】:

      【解决方案2】:

      如果你想使用 grep 匹配一个只有一位数字字符的字符串,它是

      echo whatever1 | grep '^[^[:digit:]]*[[:digit:]][^[:digit:]]*$'
      

      行首后跟任意数量的非数字,一个数字,然后是任意数量的非数字,直到行尾。

      【讨论】:

        猜你喜欢
        • 2022-01-24
        • 2014-01-09
        • 1970-01-01
        • 1970-01-01
        • 2011-10-15
        • 1970-01-01
        • 2020-10-11
        • 1970-01-01
        • 2017-06-05
        相关资源
        最近更新 更多