点正则表达式搜索

ale*_*cxe 8 python regex packages pip

我需要找到PyPI匹配特定正则表达式的所有包:

^django-.*?admin.*$
Run Code Online (Sandbox Code Playgroud)

基本上,包的名字应该与启动django-,并有admin后话.例如,以下包应该匹配:

django-redis-admin
django-admin-ckeditor 
django-admintools-bootstrap
Run Code Online (Sandbox Code Playgroud)

我能做到pip search django-,但是有很多我不感兴趣的软件包.

是否pip提供了一种通过正则表达式查找包的方法?或者,我应该只是管的结果django-,以grep过滤掉无关的包?

此外,可能是一个的"交集" pip search django-,并pip search admin有助于太.

zx8*_*x81 14

aleckxe,我相信这是你正在寻找的单线.

pip search django | grep -P "^django-(?=[-\w]*?admin)[-\w]+"
Run Code Online (Sandbox Code Playgroud)

正如下面评论中的铬酸盐所暗示的那样,如果您愿意,可以轻松地对排序列表进行排序.

pip search django | grep -P "^django-(?=[-\w]*?admin)[-\w]+" | sort
Run Code Online (Sandbox Code Playgroud)

如果你想要任何调整,请告诉我.

说明:

在将命令|输出重定向pip<stdin>grep命令的管道之后,我们在Perl模式下输入grep -P.这是必要的,否则我们将不允许使用前瞻.

我们将模式锚定在字符串的开头,^并立即匹配django-为文字.然后我们断言(预测)在这个位置我们能够匹配任意数量的破折号或单词字符(包括数字和下划线),然后是文字字符串admin.

在做出这个断言(这是一种验证形式)后,我们现在匹配尽可能多的破折号和单词字符,这应该将我们带到模块名称的末尾.

有几种表达方式,对于这种简单的模式,变化很大程度上取决于偏好或情绪.

如果你想更改它以匹配django-包含的模式someword,只需替换adminsomeword.

输出:

    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.
Run Code Online (Sandbox Code Playgroud)

(列表继续.)

顺便说一下,看一下pip搜索文档,我没有看到没有管道的方法.