匹配模式的正则表达式

2024-05-16 08:08:33 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以用python编写与以下格式的字符串匹配的正则表达式:

feat(fix-validation): some texts (Aerogear-G1010)

feat$($fix-validation$)$:$some texts$($Aerogear-G1010$)

此处,$=表示可以存在零个或多个空白

细分:

feat:来自固定字符串子集的字符串['feat'、'fix'、'docs'、'breaking']

fix-validation:最大n长度的字符串

some texts:最大m长度的字符串

Aerogear-G1010:前缀应始终是字符串Aerogear-,然后是最大q长度的字母数字字符

注意:我们不能转义特殊字符,如({}{}{},并且应采用与下面示例中所示完全相同的格式:

  1. 专长(新专长):创建团队的新功能(Aerogear-1234)
  2. 单据(新单据):在文件回购(Aerogear-G1235)中添加新单据
  3. 修复(修复警告):修复用户提出的问题(Aerogear-P1230)

我只能使用模式:'^fix|docs|feat\s+\('将字符串与字符串的固定子集进行匹配。我无法在匹配的字符串后跟(some texts) :后添加零个或多个空格

这能实现吗?提前感谢:)


Tags: 方法字符串docs格式somefix空白子集
1条回答
网友
1楼 · 发布于 2024-05-16 08:08:33

在正则表达式中,'^fix|docs|feat\s+\('中的\s+匹配一到无限次之间的任何空白字符。这至少需要一个空白字符

相反:

^(feat|docs|fix|breaking) *\( *(.*?) *\) *: *(.*?) *\( *(.*?) *\)$

我已经使用了类型化空格(),但是如果你想包含任何空格字符,你应该使用\s,它相当于[\r\n\t\f\v ]


如果你想做什么,你可以在这里看到每个部分都在做什么:https://regex101.com/r/EsF8FF/4

我建议您阅读这里的解释并阅读re模块的python文档:https://docs.python.org/3/library/re.html

相关问题 更多 >