匹配字符串中的每个字符

时间:2014-09-13 00:37:09

标签: c# string matching

我正在尝试将用户输入与模式匹配"运行,om",其中"运行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 no regex将在此程序中使用)

1 个答案:

答案 0 :(得分:0)

这个怎么样:

    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();
        }