Kob*_*kie 2 .net c# string pattern-matching match
我有一个方法允许用户指定一个远程目录和一个searchPattern with with来搜索远程目录中的文件.由于我在从远程位置检索文件名时使用第三方库,因此无法利用System.IO的Directory.GetFiles()例程,该例程允许我在获取文件时指定searchPattern.
Basic String.Compare与提供的模式的文件名不匹配.有人知道更有效的匹配方式吗?
public IList<String> GetMatchingRemoteFiles(String SearchPattern, bool ignoreCase)
{
IList<String> matchingFileNames = new List<String>();
var RemoteFiles = thirdPartyTool.ftpClient.GetCurrentDirectoryContents();
foreach( String filename in RemoteFiles)
if( String.Compare(filename, SearchPattern, ignoreCase) == 0)
matchingFileNames.Add(filename);
return matchingFileNames;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
与通配符(*,?)匹配的文件称为"glob"匹配或"globbing".您可以尝试将用户输入的glob搜索转换为正则表达式,然后使用它.这里有一个例子在这里:
Regex.Escape( wildcardExpression ).Replace( @"\*", ".*" ).Replace( @"\?", "." );
Run Code Online (Sandbox Code Playgroud)
然后,这将被传递到RegEx.Match()您当前拥有的模式String.Compare()
| 归档时间: |
|
| 查看次数: |
6577 次 |
| 最近记录: |