0

我有时间试图找出忽略与特定模式匹配的文件的语法,即:Com.Example/Com.Example.DomainModel23012013101705.somefileextension。该变量似乎是嵌入文件名的日期(23012013101705)

我试过 [0-9].somefileextension 和其他模式都无济于事。

谢谢你,斯蒂芬

4

2 回答 2

1

遗憾的是,Ry4an 犯了错误。Grep() 不适用于文件名。

我的“试验场”

>dir /B
.hg
404.php
archive.php
archives.php
comments.php
footer.php
functions.php
header.php
html5.js
image.php
index.php
license.txt
links.php
page.php
readme.txt
screenshot.png
search.php
sidebar.php
single.php
style.css

测试

>hg locate "set:grep(html5)\.php"
hg: parse error at 11: invalid token

>hg locate "set:grep(html5)"
header.php
readme.txt

注意:找到的文件中包含文本“html5”,但没有文件html5.js


>hg locate "set:s[a-z]+\.php"
abort: \.php not under root

>hg locate "set:s[a-z]+.php"

>hg locate "set:s[a-z]+"
hg: parse error at 7: not a prefix: end

>hg locate "set:s\w+"
hg: parse error at 4: not a prefix: end

所有带有set:前缀和正则表达式的测试都失败了


带有集合的不同全局模式:

>hg locate "set:s**.php"
search.php
sidebar.php
single.php

>hg locate "set:s**.*"
screenshot.png
search.php
sidebar.php
single.php
style.css

>hg locate "set:s**e.*"
single.php
style.css

文件集中的正则表达式模式

>hg locate "re:s[a-z]+.php"
search.php
sidebar.php
single.php

>hg locate "re:s[a-z]+."
screenshot.png
search.php
sidebar.php
single.php
style.css

恢复

hg forget "re:Com\.Example\.DomainModel[0-9]+\.somefileextension$"

或者

hg forget "set:Com.Example.DomainModel**.somefileextension"

和相同的设置为 hgignore

于 2013-01-24T07:39:54.493 回答
0

使用正则表达式而不是全局。Mercurial 支持它支持的任何地方。那.hgignore将是:

syntax: regexp
[0-9]\.somefileextension

该正则表达式与您尝试的 glob 匹配,但您当然可以将其缩小为:

syntax: regexp
^Com\.Example/Com\.Example\.DomainModel\d+\.somefileextension$
于 2013-01-24T01:31:16.360 回答