问题描述
当我编译我的C ++项目时,许多共享目标文件是用扩展名创建的,例如
.so
.so.0
.so.7
.so.0.7
我需要将所有这些添加到我的 .gitignore 文件中。如果这是一个正则表达式,我可以使用
$ $ p $ $ $ $ $ $ $
$ / code>
然而,表示 .gitignore
我发现没有办法按照我找到的 fnmatch 文档进行操作。是否真的没有办法做到这一点?
虽然@SpeakEasy的回答可以忽略 .so 文件在使用 *。so * 的单个步骤中,对于忽略指定格式的文件的用例,可以在 .gitignore 更具体的忽略规则
*。so
* .so。[0-9] *
从
重要的是要注意该模式与正则表达式不同。
Python有一个模块n amed ,您可以使用它来验证是否
示例示例:
import fnmatch
pattern =* .so。[0-9] *
filenames = [a.so,b.so.0,b.so.11, b.so.1.0,b.so.1.0.12]
用于文件名中的文件名:
打印文件名,fnmatch.fnmatch(文件名,模式)
>>> a.so False
b.so.0 True
b.so.11 True
b.so.1.0 True
b.so.1.0.12 True
When I compile my C++ project, many shared object files are created with extensions such as
.so .so.0 .so.7 .so.0.7
I need to add all those to my .gitignore file. Were this a regex, I could use
\.so[\.0-9]*
However, the documentation says that .gitignore
I found no way to do what I want with the fnmatch documentations I found. Is there really no way to do this?
While the answer by @SpeakEasy can ignore .so files in a single step using *.so*, for your use case of ignoring files in formats specified, you can use two entries in your .gitignore for more specific ignore rule
*.so *.so.[0-9]*
From gitignore man page
The important thing to note is that the pattern is not the same as regular expressions.
Python has a module named fnmatch, you can use that to verify whether a particular filename matches the pattern or not.
Sample example:
import fnmatch pattern = "*.so.[0-9]*" filenames = ["a.so", "b.so.0", "b.so.11", "b.so.1.0", "b.so.1.0.12"] for filename in filenames: print filename, fnmatch.fnmatch(filename, pattern) >>> a.so False b.so.0 True b.so.11 True b.so.1.0 True b.so.1.0.12 True
这篇关于正则表达式像gitignore的外壳glob模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!