我需要找到PyPI与特定正则表达式匹配的所有软件包:
PyPI
^django-.*?admin.*$
基本上,包的名字应该与启动django-,并有admin后话。例如,以下软件包应匹配:
django-
admin
django-redis-admin django-admin-ckeditor django-admintools-bootstrap
我可以做pip search django-,但是有很多我不感兴趣的软件包。
pip search django-
是否pip提供通过正则表达式查找软件包的方法?或者,我应该只是通过管道django-传递结果grep来过滤掉无关的包?
pip
grep
此外,可能是一个的“交集” pip search django-,并pip search admin有助于太。
pip search admin
alecxe,我相信这是您要寻找的一线客。
pip search django | grep -P "^django-(?=[-\w]*?admin)[-\w]+"
如下面评论中铬酸盐所建议的那样,您可以根据需要轻松地通过管道进行排序。
pip search django | grep -P "^django-(?=[-\w]*?admin)[-\w]+" | sort
让我知道您是否需要任何调整。
说明 :
在将命令|输出重定向pip到<stdin>grep命令的管道之后,我们在Perl模式下输入grep -P。这是必要的,否则我们将不被允许使用前瞻。
|
<stdin>
-P
我们将模式锚定在字符串的开头,^并立即将其django-作为文字匹配。然后我们断言(超前),在这个位置上,我们将能够匹配任意数量的破折号或单词字符(包括数字和下划线),然后是文字字符串admin。
^
做出此断言(这是一种验证形式)后,我们现在现在尽可能地匹配破折号和单词字符,这将使我们到达模块名称的末尾。
有几种表达方式,对于这种简单的模式,变化很大程度上取决于喜好或情绪。
如果您想更改此设置以匹配django-包含的模式someword,只需将其替换admin为someword。
someword
输出 :
django-smoke-admin - django-smoke-admin tests that all admin pages for all registered models responds correctly (HTTP 200). django-adminskin - UNKNOWN django-admin-exporter - Simple admin actions to download/export selected items in CSV, JSON, XML, etc. django-treeadmin-fork-alt-storage - Tree UI for mptt-managed models, extracted from FeinCMS. This is a fork with support for alternative storage engines django-relatedadminwidget - Get edit and delete links in your django admin. A utility class to let your model admins inherit from. django-admin-langswitch - Adds easy language switch in admin django-authy-admin - A drop in replacement for django's default admin site that provides two-factor authentication via authy's REST API. django-frontendadmin - A a set of templatetags to allow an easy and unobstrusive way to edit model-data in the frontend of your page. django-admin-app-names-singleton - Django admin enhancer django-mobileadmin - The Django admin interface for mobile devices.
(列表继续。)
顺便说一句,查看点子搜索文档,如果没有管道,我看不到这样做的方法。