模式?( - )+([0-9])

时间:2017-12-24 06:31:42

标签: regex bash

我在教程中看到了这个表达式,它表示它是一个匹配整数的表达式。

我无法理解这个匹配是一个整数,也不理解( )用于覆盖-[0-9]的情况。我知道?是0或1出现的字符[0-9]是任何数字一次。我如何理解其余部分?

2 个答案:

答案 0 :(得分:2)

这不是正则表达式。它是一个"扩展的glob" pattern,这是Bash中的可选工具,也可以在Korn shell中使用。在Bash中,您可以使用shopt -s extglobread about it in the manual.

启用它

另见http://mywiki.wooledge.org/glob#extglob

答案 1 :(得分:1)

?(-)表示-出现一次或零次,因此此模式处理负整数。

+([0-9])表示一个或多个数字出现;这种模式处理任意长度的整数。

括号围绕+?运算符应该影响的元素。