1
我不是说这个问题只适用于UNIX,但是我在Solaris上工作,并且我没有在任何其他操作系统上尝试它。UNIX中的扩展正则表达式
第一: 我的扩展正则表达式之间的混淆
[[ "str" == ?(str|STR) ]] && echo "matched"
这项工作是正确的,但是当:
[[ "str str" == ?(str|STR)(.*) ]] && echo "matched"
这是行不通的,这是否意味着我只能比较一种模式。
二:
[[ "str" =~ ?(str|STR) ]] && echo "matched"
我不能在这里为什么要用这种形式?,但当:
[[ "str" == (str|STR)? ]] && echo "matched"
它工作正常。