我正在尝试将用户输入与模式匹配"运行,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将在此程序中使用)
答案 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();
}