如何解决如何编写正则表达式来搜索类和定义?
我正在尝试为 git diff 大块头格式编写自定义正则表达式,以便对于每次更改,git diff 都会显示发生更改的类和函数。我使用了此文件 (https://github.com/git/git/blob/6d2f208c3dd39493f4d45ea67c55a1b7fe06626a/userdiff.c) 中定义的 Python 模式。在我的 gitconfig 文件中,我有这样的内容:
[diff "python"]
xfuncname = "^[ \t]*((class|def)[ \t].*)$"
对于以下示例,如果我对类属性进行更改
class class1:
#some change here
def func1():
print('hello')
git diff 大块头正确显示以下内容:
@@ -k,l +m,n @@ class class1:
但是如果我在函数中进行更改:
class class1:
def func1():
#some change here
print('hello')
这是 git diff 标题显示:
@@ -k,n @@ def func1():
我想知道如果我在函数内进行更改,是否可以编写一个可以同时显示类和函数的正则表达式,如下所示:
@@ -k,n @@ class class1:,def func1():
我最初考虑做一个 and 操作而不是 or ,如下所示,但结果是在大块头中根本没有显示任何内容
[diff "python"]
xfuncname = "^[ \t]*((class&def)[ \t].*)$"
我尝试的另一个选项是基于对这个问题的第一个回答:Regular Expressions: Is there an AND operator?
[diff "python"]
xfuncname = "^[ \t]*(((?=class)(?=def))[ \t].*)$"
但是我收到一个错误,说这是一个无效的正则表达式。
我所要求的可能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。