expr 手册页说:“模式匹配返回在 ( 和 ) 之间匹配的字符串或 null;如果没有使用 ( 和 ),它们返回匹配的字符数或 0。”
我在做
echo `expr ABCDEF : ABC`
如预期的那样给出 3
然而,这也给出了 3,为什么?
echo `expr \( ABCDEF : ABC \)`
最佳答案
那里有两种不同的括号;您使用的那些是表达式语法的一部分,而您的引用是关于模式中的正则表达式括号。
expr \( ABCDEF : ABC \) # parenthesized expression
expr ABCDEF : \(ABC\) # capturing parentheses in pattern
关于linux - 对 expr 用法的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6481764/