gpt4 book ai didi

c# - 比较字符串与通配符

转载 作者:行者123 更新时间:2023-12-02 05:14:37 25 4
gpt4 key购买 nike

我需要相互比较几个字符串。

我有一个通配符 '%' 可以替换任何数字(数字可以是任何大小)。

string str1 = "STRUCT[1].VARSTRUCT[10].VAR[1]";
string str2 = "STRUCT[%].VARSTRUCT[%].VAR[%]";
string str3 = "STRUCT[%].VARSTRUCT[%].VAR[2]";

CompareStrings(str1, str2); // Should return TRUE;
CompareStrings(str2, str3); // Should return TRUE;
CompareStrings(str1, str3); // SHould return FALSE;

最佳答案

以下是如何对包含数字和代表数字的通配符的任意两个字符串执行此操作:

    private static bool CompareStrings(string str1, string str2)
{
var ar1 = Regex.Matches(str1, @"[\d%]+").Cast<Match>().Select(m => m.Value).ToArray();
var ar2 = Regex.Matches(str2, @"[\d%]+").Cast<Match>().Select(m => m.Value).ToArray();

if (ar1.Length != ar2.Length)
return false;

// Check wildcards and numbers
for (int i = 0; i < ar1.Length; i++)
if (ar1[i] != ar2[i] && ar1[i] != "%" && ar2[i] != "%")
return false;

// Remove wildcards and numbers to check the other characters
if (Regex.Replace(str1, @"[\d%]+", String.Empty) != Regex.Replace(str2, @"[\d%]+", String.Empty))
return false;

return true;
}

关于c# - 比较字符串与通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14855274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com