regex - 为什么 "(^man)+"匹配行开头没有 "man"的内容?

标签 regex apt

如果我打开使用 apt 包管理系统的 Linux shell 并执行 apt-cache search --names-only "(^man)+" 为什么会这样它匹配/输出如下内容:

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

我对 POSIX.2 正则表达式模式的初步理解认为原子 (^man) 只匹配行开头的字符串“man”。显然,上述行在行开头没有“man”。为什么它们被打印到我的终端?

最佳答案

man apt-cache --names-only 表示“仅搜索包和提供的包名称”。您的命令将匹配包名称或提供的包名称以 man 开头的任何包,并且 gmanjed-extra 都具有 man-browser 作为提供的包名称(您可以使用 apt-cache show 查看此名称)。

关于regex - 为什么 "(^man)+"匹配行开头没有 "man"的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61861893/

相关文章:

linux - DEBIAN_FRONTEND=noninteractive install -y gcc 之后无法安装 runit

javascript - 用于尾随和前导的正则表达式

javascript - JavaScript 正则表达式中 'y' 粘性模式修饰符的用途是什么?

linux - 亚马逊 Linux : "apt-get: command not found"

ubuntu - apt-get install zookeeper-server 抛出错误

linux - 如何缩小 debian/ubuntu 上的 linux 用户空间?

objective-c - 在 MobileSafari 中实现 apt

javascript - JS : Regex - replace parts of domains in full text

javascript - 正则表达式删除扩展名和号码

python - Python 中的捕获群体和贪婪