为什么“(^man)+”匹配行首没有 "man" 的内容?
Why does "(^man)+" match things without "man" at line start?
如果我打开一个使用 apt
包管理系统的 Linux shell 并执行 apt-cache search --names-only "(^man)+"
为什么会 match/output 这样的事情:
- gman - small man(1) X
前端
- jed-extra - 有用的 Jed 模式和实用程序的集合
我对 POSIX.2 正则表达式模式的初步理解认为原子 (^man) 只能匹配行首的字符串 "man"。显然,上述行在行首没有 "man" 。为什么它们会打印到我的终端?
man apt-cache
表示 --names-only
表示 "Only search on the package and provided package names"。您的命令将匹配包名称或提供的包名称以 man
开头的任何包,并且 gman
和 jed-extra
都将 man-browser
作为提供的包名称(您可以用 apt-cache show
).
看到这个
如果我打开一个使用 apt
包管理系统的 Linux shell 并执行 apt-cache search --names-only "(^man)+"
为什么会 match/output 这样的事情:
- gman - small man(1) X 前端
- jed-extra - 有用的 Jed 模式和实用程序的集合
我对 POSIX.2 正则表达式模式的初步理解认为原子 (^man) 只能匹配行首的字符串 "man"。显然,上述行在行首没有 "man" 。为什么它们会打印到我的终端?
man apt-cache
表示 --names-only
表示 "Only search on the package and provided package names"。您的命令将匹配包名称或提供的包名称以 man
开头的任何包,并且 gman
和 jed-extra
都将 man-browser
作为提供的包名称(您可以用 apt-cache show
).