匹配选项列表中的确切字符串
Match exact string from list of options
我正在使用预提交 运行 一些挂钩,并且我有一个正则表达式,其中我只包含我希望 运行 挂钩的文件(目录)列表。问题是我的正则表达式与第一个字符串完全匹配+任何其他附加字符串。
hooks:
- id: xdoc
files: (?=(analytic|authentication|store))
exclude: (?=(apps|serializers|admin|test|migrations|__init__.py))
stages: [commit]
这里我最初有两个以字符串 store
:
开头的应用程序
store
storespecifics
上面的正则表达式匹配两者,我只是想精确匹配 store
。
例如,我试过 (?=^(analytic|authentication|store)$)
,但没有任何匹配项。
这里没有必要涉及正面前瞻,因为 pre-commit uses re.search
to match paths -- 这可能更接近您想要的:
files: ^(analytic|authentication|store)/
exclude: (apps|serializers|admin|test|migrations|__init__.py)
请注意,我在这里使用 /
以确保我们处于文件夹边界(匹配 store/foo.py
但不匹配 storespecifics/foo.py
)
我还用 ^
将匹配锚定到开头,如果这不是您想要的,您可能会将 ^
替换为 /
免责声明:我写了预提交
我正在使用预提交 运行 一些挂钩,并且我有一个正则表达式,其中我只包含我希望 运行 挂钩的文件(目录)列表。问题是我的正则表达式与第一个字符串完全匹配+任何其他附加字符串。
hooks:
- id: xdoc
files: (?=(analytic|authentication|store))
exclude: (?=(apps|serializers|admin|test|migrations|__init__.py))
stages: [commit]
这里我最初有两个以字符串 store
:
store
storespecifics
上面的正则表达式匹配两者,我只是想精确匹配 store
。
例如,我试过 (?=^(analytic|authentication|store)$)
,但没有任何匹配项。
这里没有必要涉及正面前瞻,因为 pre-commit uses re.search
to match paths -- 这可能更接近您想要的:
files: ^(analytic|authentication|store)/
exclude: (apps|serializers|admin|test|migrations|__init__.py)
请注意,我在这里使用 /
以确保我们处于文件夹边界(匹配 store/foo.py
但不匹配 storespecifics/foo.py
)
我还用 ^
将匹配锚定到开头,如果这不是您想要的,您可能会将 ^
替换为 /
免责声明:我写了预提交