expr 用法的混乱

发布于 2024-11-17 10:57:52 字数 237 浏览 0 评论 0原文

expr 手册页说:“模式匹配返回 ( 和 ) 之间匹配的字符串或 null;如果不使用 ( 和 ),则返回匹配的字符数或 0。”

我正在做的

echo `expr ABCDEF : ABC`

事情按预期给出了 3

但是,这也给出了 3,为什么?

echo `expr \( ABCDEF : ABC \)`

expr manual page says: "Pattern matches return the string matched between ( and ) or null; if ( and ) are not used, they return the number of characters matched or 0."

I am doing

echo `expr ABCDEF : ABC`

which gives 3 as expected

However, this also gives 3, why ?

echo `expr \( ABCDEF : ABC \)`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无所谓啦 2024-11-24 10:57:52

这里有两种不同类型的括号;您使用的那些是表达式语法的一部分,而您的引用是关于模式中的正则表达式括号。

expr \( ABCDEF : ABC \) # parenthesized expression
expr ABCDEF : \(ABC\) # capturing parentheses in pattern

There are two different kinds of parentheses there; the ones you used are part of the expression syntax, whereas your quote is about regular expression parentheses within the pattern.

expr \( ABCDEF : ABC \) # parenthesized expression
expr ABCDEF : \(ABC\) # capturing parentheses in pattern
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文