expr手册页说:“模式匹配返回在(和)之间匹配的字符串或null;如果未使用if(和),则返回匹配的字符数或0。”
我在做
echo `expr ABCDEF : ABC`
按预期给出3
然而,这也给出3,为什么?
echo `expr \( ABCDEF : ABC \)`
答案 0 :(得分:1)
那里有两种不同的括号;您使用的是表达式语法的一部分,而您的引用是关于模式中的正则表达式括号。
expr \( ABCDEF : ABC \) # parenthesized expression
expr ABCDEF : \(ABC\) # capturing parentheses in pattern