在 glob 模式中使用括号

在 glob 模式中使用括号

我很难决定将方括号放在以下 bash glob 表达式中的什么位置,该表达式应该匹配以 开头、-后跟任何非数字条目的变量。

[[ "$var" == -*[^[0123456789]]* ]]

答案1

“括号表达式”可以被认为是字符数:匹配这些字符之一。

  • 你可以列出个别角色
    [^0123456789]
    
  • 你可以输入一系列字符
    [^0-9]
    
    这样做的一个缺点是字符范围在不同的语言环境中包含不同的字符。
  • 你可以放置一个 POSIX 字符类:这就是你看到括号内的括号
    [^[:digit:]]
    

您还可以将以上内容进行混合搭配。

这些都记录在手册中:模式匹配

相关内容