为什么“(^ man)+”在行首匹配没有“ man”的东西?

问题描述 投票:0回答:1

如果我打开一个使用apt软件包管理系统的Linux外壳并执行apt-cache search --names-only "(^man)+",为什么它会匹配/输出类似的内容:

  • gman-X的small man(1)前端
  • jed-extra-有用的Jed模式和实用程序的集合

我对POSIX.2正则表达式模式的初衷是认为原子(^ man)只能与行首的字符串“ man”相匹配。显然,上述行在行开始处没有“ man”。为什么将它们打印到我的终端机上?

regex apt
1个回答
1
投票

man apt-cacheman apt-cache的意思是“仅搜索软件包和提供的软件包名称”。您的命令将匹配任何以--names-only开头的软件包名称或提供的软件包名称,并且mangman都以jed-extra作为提供的软件包名称的任何软件包(可以通过man-browser看到) 。

© www.soinside.com 2019 - 2024. All rights reserved.