我正在寻找一种简单而强大的方法来实现Windows风格的*
和?
通配符在字符串中匹配。寻找简单但功能强大的windows通配符(`*,?`)匹配实现
BeginsWith()
,EndsWith()
太简单了,无法覆盖所有情况,而将通配符表达式转换为正则表达式看起来很复杂,我不确定性能。
想要一个快乐的媒介。
编辑:我试图解析.gitignore
文件,并匹配相同的文件,因为Git。这意味着:
- 文件应该是出库的索引(所以我检查存储在索引对一个文件的路径)
- 在
.gitignore
数的模式可以很大; - 要检查的文件数量可能也很大。
非常含糊。发布一些具有所需输出的输入。 – 2012-01-12 21:25:09
@亨克,大多数窗口的人会知道什么意思,*任何数量的字符,?只是一个未知的字符...?blah * .txt会匹配任何与之前的字符的任何东西,任何数量的字符后,等等,并以.txt结尾 – 2012-01-12 21:29:49
@HenkHolterman,我解析'.gitignore'文件,并在我的库我需要达到原始Git提供的相同行为。 – shytikov 2012-01-12 21:37:32