如何比较C#中的路径?我需要比较这两条路线:
C:Users*AppDataLocalArchivos temporales de Internet
C:UsersjuanitoAppDataLocalArchivos temporales de Internet
尽管用户不同,但它们在其他方面都是相同的,所以我需要代码来识别它们是平等的。
我认为在这个
if (C:UsersjuanitoAppDataLocalArchivos temporales de Internet == C:Users ..AppDataLocalArchivos temporales de Internet)
{
// great
}
但不起作用
有什么帮助吗?
提前感谢
希望这能帮助
首先,转到regex101或其他类似的网站,通过测试字符串找出regex模式
然后会发现一些模式,如C:\Users\(w+)\AppData\Local\ArchivosstemporalessdesInternet
其次,使用.NET的Regex类来匹配字符串,[user]文件夹可以使用Regex模式。
像
using System.Text.RegularExpressions;
// Regex can use as static class
// and this will return a bool result that your pattern is matched or not
Regex.IsMatch(input, @"C:\Users\(w+)\AppData\Local\Archivos temporales de Internet");
然后使用IsMatch
的布尔结果来比较这两个相等或不是的字符串
.NET 6控制台应用程序的示例
// See https://aka.ms/new-console-template for more information
using System.Text.RegularExpressions;
Console.WriteLine("Start testing regex ...");
string testDataA = @"C:UsersjuanitoAppDataLocalArchivos temporales de Internet";
string testDataB = @"C:UsersSteveAppDataLocalArchivos temporales de Internet";
string testDataC = @"C:UsersjohnAppDataLocalArchivos temporales de Internet";
if (IsMatchPattern(testDataA) == IsMatchPattern(testDataB))
{
Console.WriteLine("Matched A == B");
}
if (IsMatchPattern(testDataA) == IsMatchPattern(testDataC))
{
Console.WriteLine("Matched A == C");
}
if (IsMatchPattern(testDataB) == IsMatchPattern(testDataC))
{
Console.WriteLine("Matched B == C");
}
static bool IsMatchPattern(string input)
{
return Regex.IsMatch(input, @"C:\Users\(w+)\AppData\Local\Archivos temporales de Internet");
}
Console.ReadLine();