首页 > 解决方案 > Ebuild 文件格式的正则表达式

问题描述

我正在尝试根据File Naming Rules解析 Ebuild File Format 。

直到现在我想出了:

(?P<name>[a-z0-9_-]+)-(?P<major>[0-9]+)(\.(?P<minor>[0-9]+))?(\.(?P<micro>[0-9]+))?(?P<release>(_alpha|_beta))*(?P<status>(_pre|_rc\d+|_p\d+))(?P<revision>-r\d+)*

这不起作用(正则表达式示例)。

我很不高兴,我的版本表达式.在组匹配中包含,而 版本在匹配中包含字符_。此外,修订版会找到“-r”字符,而不是返回它自己的数字。

如何修复我的正则表达式?

标签: pythonregex

解决方案


你应该把它从这样的组中删除

(?P<name>[a-z0-9_-]+)-(?P<major>[0-9]+)(?:\.(?P<minor>[0-9]+))?(?:\.(?P<micro>[0-9]+))?(?:_(?P<release>alpha|beta))*(?:_(?P<status>pre|rc\d+|p\d+))(?P<revision>-r\d+)*
                                                                  ^^                      ^                            ^

推荐阅读