我想基於像手機*意味着我想要的文字「電話亭」,「手機立方」等C#正則表達式的問題
但是,當我給展位*它選擇電話正則表達式來過濾掉一些文本展位也。它不應該選擇它的禮儀?這裏是代碼,
string[] names = { "phone booth", "hall way", "parking lot", "front door", "hotel lobby" };
string input = "booth.*, door.*";
string[] patterns = input.Split(new char[] { ',' });
List<string> filtered = new List<string>();
foreach (string pattern in patterns)
{
Regex ex = null;
try
{
ex = new Regex(pattern.Trim());
}
catch { }
if (ex == null) continue;
foreach (string name in names)
{
if (ex.IsMatch(name) && !filtered.Contains(name)) filtered.Add(name);
}
}
foreach (string filteredName in filtered)
{
MessageBox.Show(filteredName);
}
它顯示「電話亭」和「前門」。但根據我的標準,它不應該顯示任何內容,bcoz沒有任何字符串以展位或門開始。
在我的正則表達式中有任何問題嗎?
非常感謝您的幫助。 – jaks 2010-08-30 14:52:40