正则表达式以匹配符合PEP440的版本字符串

狮子座

PEP 440列出了Python软件包的版本字符串可接受的格式。

这些可以很简单,例如: 0.0.1

还是复杂的,例如: 2016!1.0-alpha1.dev2

什么是可用于查找和验证此类字符串的合适正则表达式?

牛角

我有同样的问题。这是我能找到的最彻底的正则表达式模式。PEP440的参考部分中链接到包装库的代码库。

pip install packaging

要仅访问模式字符串,可以使用全局

from packaging import version
version.VERSION_PATTERN

参见:https : //github.com/pypa/packaging/blob/16.7/packaging/version.py#L159

# Deliberately not anchored to the start and end of the string, to make it
# easier for 3rd party code to reuse
VERSION_PATTERN = r"""
v?
(?:
    (?:(?P<epoch>[0-9]+)!)?                           # epoch
    (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
    (?P<pre>                                          # pre-release
        [-_\.]?
        (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
        [-_\.]?
        (?P<pre_n>[0-9]+)?
    )?
    (?P<post>                                         # post release
        (?:-(?P<post_n1>[0-9]+))
        |
        (?:
            [-_\.]?
            (?P<post_l>post|rev|r)
            [-_\.]?
            (?P<post_n2>[0-9]+)?
        )
    )?
    (?P<dev>                                          # dev release
        [-_\.]?
        (?P<dev_l>dev)
        [-_\.]?
        (?P<dev_n>[0-9]+)?
    )?
)
(?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
"""

当然,此示例特定于Python的正则表达式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用正则表达式匹配字符串?

来自分类Dev

Java正则表达式匹配字符串

来自分类Dev

返回匹配正则表达式的字符串

来自分类Dev

匹配不带正则表达式的字符串

来自分类Dev

匹配任何字符串正则表达式

来自分类Dev

正则表达式以匹配Java字符串

来自分类Dev

Vim:匹配字符串的正则表达式

来自分类Dev

正则表达式匹配空字符串?

来自分类Dev

正则表达式不匹配字符串

来自分类Dev

与正则表达式匹配的Java字符串

来自分类Dev

正则表达式匹配特定字符串

来自分类Dev

正则表达式-匹配字符串模式

来自分类Dev

正则表达式与字符串不匹配

来自分类Dev

字符串与正则表达式不匹配

来自分类Dev

正则表达式后匹配字符串

来自分类Dev

正则表达式匹配子字符串

来自分类Dev

正则表达式匹配逗号或字符串

来自分类Dev

字符串之间的正则表达式匹配

来自分类Dev

正则表达式匹配“划定的字符串

来自分类Dev

用正则表达式匹配字符串

来自分类Dev

返回匹配正则表达式的字符串

来自分类Dev

正则表达式与字符串匹配

来自分类Dev

正则表达式匹配字符串

来自分类Dev

匹配任何字符串正则表达式

来自分类Dev

正则表达式匹配子字符串

来自分类Dev

正则表达式匹配字符串从

来自分类Dev

正则表达式-匹配字符串模式

来自分类Dev

使用正则表达式匹配字符串?

来自分类Dev

正则表达式特定的匹配字符串