我在一个教程中看到了这个表达式,它说它是一个匹配整数的表达式。
我无法理解这是如何匹配整数,也不明白使用( )
来覆盖-
和[0-9]
。我知道?
是0或1次出现的字符[0-9]是任何数字一次。我如何理解其余部分?
这不是正则表达式。它是一个“扩展的glob”模式,它是Bash中的可选工具,也可以在Korn shell中使用。在Bash中,您可以使用shopt -s extglob
和read about it in the manual.启用它
?(-)
表示-
的一次或零次出现,因此该模式处理负整数。
+([0-9])
表示一个或多个数字出现;这种模式处理任何长度的整数。
括号围绕着+
和?
运算符应该影响的元素。