匹配字符串中的每个字符

本文关键字:字符 字符串 | 更新日期: 2023-09-27 18:21:46

我正在尝试将用户输入与模式"ran,om"匹配,其中"ran om将按顺序匹配精确的字符,并且","可以匹配任何字符。程序将在arrayList中找到单词,例如在arrayList字典{rammm,random,ranom}中,例如,random将匹配,但ranom不会。

我写了以下代码,但它只发现任何单词包含用户输入中的任何字符:

for (int i = 0; i < userinput.Length; i++)
{
        foreach (string line in dictionary)
            if (line[i] == userinput[i])
            {
                Matching.Add(line);
            }
        foreach (string line in FirstCom)
            Console.WriteLine(line);
}

有人能帮我弄清楚下一步该怎么办吗?(p.s此程序中不会使用正则表达式)

匹配字符串中的每个字符

这个怎么样:

    public static bool IsMatch(string pattern, string line)
    {
        var patternSplit = pattern.Split(',');
        if (!line.StartsWith(patternSplit[0])) return false;
        if(patternSplit.Count() > 2){
           for (var i = 1; i < patternSplit.Count() - 1; i++)
           {
               if (!line.Contains(patternSplit[i])) return false;
           }
        }
        if (!line.EndsWith(patternSplit[patternSplit.Count() - 1])) return false;
        return true;
    }

static void Main(string[] args)
        {
            var matchingData = "quick brown fox jumped over a lazy dog";
            var failingData = "I am batman";
            var pattern = "qu,pe,ov,og";
            if(IsMatch(pattern, matchingData))Console.WriteLine("{0} matches pattern {1}", pattern, matchingData);
            if(!IsMatch(pattern, failingData)) Console.WriteLine("{0} does not match {1}", pattern, failingData);
            Console.ReadKey();
        }