【发布时间】:2021-09-12 22:07:48
【问题描述】:
我必须接受只有一个数字的字符串,字符串的内容无关紧要,它只需要是一个数字。
我正在尝试这样的事情:
echo "exaaaamplee1" | grep '[0-9]\{1\}'
这个字符串被接受,但这个字符串也被接受:
echo "exaaaamplee11" | grep '[0-9]\{1\}'
【问题讨论】:
我必须接受只有一个数字的字符串,字符串的内容无关紧要,它只需要是一个数字。
我正在尝试这样的事情:
echo "exaaaamplee1" | grep '[0-9]\{1\}'
这个字符串被接受,但这个字符串也被接受:
echo "exaaaamplee11" | grep '[0-9]\{1\}'
【问题讨论】:
您可能想使用[^0-9] 之类的东西。这表示除数字 0-9 之外的任何字符,您可以使用 [0-9](或 \d)作为允许的一位数字。
像^[^0-9]*[0-9][^0-9]*$ 这样的东西应该匹配任何只有一位数字的字符串。 (^ 是字符串的开头,$ 是字符串的结尾)
【讨论】:
如果你想使用 grep 匹配一个只有一位数字字符的字符串,它是
echo whatever1 | grep '^[^[:digit:]]*[[:digit:]][^[:digit:]]*$'
行首后跟任意数量的非数字,一个数字,然后是任意数量的非数字,直到行尾。
【讨论】: