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

问题描述 投票:-2回答:2

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

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

regex bash
2个回答
2
投票

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

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


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.