你好我想單詞列表上讀取標籤,列表中有一個像(TMConnects(MEN)什麼(WP)發生(VB)字(TO)你(ADV)我(ADV)tm(N)網站(N)i(N)can(ADV)access(N)to(TO)view(N)my(ADV)bills(N))我試圖使用if語句和正則表達式閱讀每個標籤,以便我可以適當地對這些詞進行分類。如果用不同的正則表達式語句參數
這裏是我試過
foreach (string word in tokensList)
{
//Verbs
Match match_verb = Regex.Match(word, @"[a-zA-Z]+\(vb\)");
if (match_verb.Success)
{
Console.WriteLine(word + "v");
Verbs.Add(word);
}
else
{
//Nouns
Match match_noun = Regex.Match(word, @"[a-zA-Z]+\(n\)");
if (match_noun.Success)
{
Console.WriteLine(word + "n");
Nouns.Add(word);
}
else
{
//Adverb(Ad)
Match match_adverb = Regex.Match(word, @"[a-zA-Z]+\(adv\)");
if (match_adverb.Success)
{
Console.WriteLine(word + "adv");
Adverbs.Add(word);
}
else
{
//Adjective(Adj)
Match match_adj = Regex.Match(word, @"[a-zA-Z]+\(adj\)");
if (match_adj.Success)
{
Console.WriteLine(word + "adj");
Adjectives.Add(word);
}
else
{
//Mention(Men)
Match match_men = Regex.Match(word, @"[a-zA-Z]+\(men\)");
if (match_men.Success)
{
Console.WriteLine(word + "men");
Mentions.Add(word);
}
else
{
//Object(KNK)
Match match_obj = Regex.Match(word, @"[a-zA-Z]+\(knk\)");
if (match_obj.Success)
{
Console.WriteLine(word + "obj");
Objects.Add(word);
}
else
{
//Features(KT)
Match match_feature = Regex.Match(word, @"[a-zA-Z]+\(kt\)");
if (match_feature.Success)
{
Console.WriteLine(word + "ft");
Features.Add(word);
}
else
{
//break;
}
}
}
}
}
}
請幫助我的代碼。
你期待什麼幫助?我可以建議的一點是,輸入「word」一次只能屬於一個類別,但不能超過一個。因此,你可以使用'if-else'循環來代替嵌套的'if-else'循環, –
幫助你做什麼?你沒有告訴我們什麼不工作。大寫的標籤,就像你的例子一樣?正則表達式默認是區分大小寫的(沒有'RegexOptions.IgnoreCase')。似乎有一個單一的正則表達式提取單詞和標籤,並打開標籤,或者可能有一個標籤作爲關鍵字和列表作爲值的字典會更清晰? – Mark
我正在嘗試閱讀單詞上的標籤,然後再對單詞進行分類,但問題似乎有些if語句被忽略。 (例如我上面給出的單詞列表應該已經找到它們並打印出來,但它只能找到(我的(adv)adv 網站(n) can(adv) 我的(副) – Blavejr21