相关疑难解决方法(0)

需要使用Regex对字符串执行通配符(*,?等)搜索

我需要在字符串上执行Wildcard(*,?等)搜索.这就是我所做的:

string input = "Message";
string pattern = "d*";
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);

if (regex.IsMatch(input))
{
    MessageBox.Show("Found");
}
else
{
    MessageBox.Show("Not Found");
}
Run Code Online (Sandbox Code Playgroud)

使用上面的代码"发现"块正在击中,但实际上它不应该!

如果我的模式是"e*"那么只有"找到"应该命中.

我的理解或要求是d*search应该找到包含"d"的文本,后跟任何字符.

我应该将模式更改为"d.*"和"e.*"吗?在使用Regex类时,是否支持.NET for Wild Card?

.net c# regex string wildcard

59
推荐指数
5
解决办法
11万
查看次数

如何检查文件名是否与通配符模式匹配

我有一个通配符模式,可能是"*.txt"或"POS ??.dat".

我还有内存中的文件名列表,我需要与该模式进行比较.

我将如何做到这一点,请记住,我需要与IO.DirectoryInfo.GetFiles(模式)使用完全相同的语义.

编辑:盲目地将其转换为正则表达式将无法正常工作.

.net regex

28
推荐指数
4
解决办法
3万
查看次数

使用基本字符串操作的字符串模式匹配

我有一个方法允许用户指定一个远程目录和一个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)

提前致谢.

.net c# string pattern-matching match

2
推荐指数
1
解决办法
6577
查看次数

标签 统计

.net ×3

c# ×2

regex ×2

string ×2

match ×1

pattern-matching ×1

wildcard ×1