首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python regex从git diff语法中提取文件名

Python regex从git diff语法中提取文件名
EN

Stack Overflow用户
提问于 2022-02-17 17:31:26
回答 1查看 162关注 0票数 0

我正在尝试对位桶提交进行一些验证。我需要从使用BitBucket API获得的提交文本中提取文件名。文本的格式如下

代码语言:javascript
复制
---
 src/classes/SVMX_EventTriggerHandler.cls | 653 ++++++++++++++---------
 1 file changed, 400 insertions(+), 253 deletions(-)

diff --git a/src/classes/SVMX_EventTriggerHandler.cls b/src/classes/SVMX_EventTriggerHandler.cls
index 568a6c77ba..51adfeadb0 100644

我目前使用以下regex (从unidiff库中提取)来提取两个组中的两个文件名

代码语言:javascript
复制
RE_DIFF_GIT_HEADER = re.compile(
    r'^diff --git (?P<source>(a/)?[^\t\n]+) (?P<target>(b/)?[^\t\n]+)')

这是正确的。我得到两组,一组是a,另一组是b

资料来源:a/src//_EventTriggerHandler.cls

目标组:SVMX b/src//_EventTriggerHandler.cls

但有些文件的名字中有空格。

代码语言:javascript
复制
diff --git a/src/profiles/EU Customer Care Advisor.profile b/src/profiles/EU Customer Care

在这种情况下,这个正则表达式失败了。我得到了源头组

资料来源:a/src//EU客户服务Advisor.profile b/src//EU客户

目标组:护理

我想要在这两种情况下都适用的regex。

EN

回答 1

Stack Overflow用户

发布于 2022-02-17 17:50:19

如果您知道这些文件以a/b/开头,那么

当然,.+不是获取文件名的最精确的方法--也许您可以用可接受的字符(如[\w.\/ ]+ )来替换它,但它应该是一个良好的开端。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71162823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档