gpt4 book ai didi

用于 diffstat 输出的 Python 正则表达式

转载 作者:行者123 更新时间:2023-11-28 17:35:46 24 4
gpt4 key购买 nike

我想使用 python 正则表达式匹配以下字符串并提取数字。

1 file changed, 1 insertion(+), 1 deletion(-)
2 files changed, 10 insertions(+), 10 deletions(-)
1 file changed, 1 insertion(+)
1 file changed, 2 deletions(-)

所以我虽然在 python 正则表达式中使用命名组并向前看模式。但这并没有按预期工作。

#!/usr/bin/python
import re
pat='\s*(\d+).*changed,\s+(\d*)(?P<in>=\s+insertion).*(\d+)(?P<del>=\s+deletion.*')
diff_stats = re.compile(pat)
obj = diff_stats.match(line)

最佳答案

从命名捕获组中删除 =.. 另外.. 你的最后一个组没有关闭!

\s*(\d+).*changed,\s+(\d*)(?P<in>\s+insertion).*(\d+)(?P<del>\s+deletion).*
↑ ↑ ↑

参见 DEMO

编辑:改进了 +- 的正则表达式,并命名了数字捕获:

\s*(\d+)\s+files?\s+changed,\s*((?P<in>\d+)\s*(insertions?)\([+-]\))?,?\s*((?P<del>\d+)\s*(deletions?)\([+-]\))?

参见 DEMO

关于用于 diffstat 输出的 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30681380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com