如果我打开使用 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
开头的任何包,并且 gman
和 jed-extra
都具有 man-browser
作为提供的包名称(您可以使用 apt-cache show
查看此名称)。
关于regex - 为什么 "(^man)+"匹配行开头没有 "man"的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61861893/