這就是我所做的。如何從句子中列出所有檢查的關鍵字?
List<string> keywords1 = new List<string> { "word1", "word2", "word3" };
string sentence = Console.ReadLine();
int sentenceLength = sentence.Length;
string pattern = String.Join("|", keywords1.Select(k => Regex.Escape(k)));
Match matching = Regex.Match(sentence, pattern, RegexOptions.IgnoreCase);
if (matching.Success)
{
Console.WriteLine(matching);
}
else {
Console.WriteLine("Keyword not found!");
}
但是,如果句子有每個關鍵字匹配,我想列出他們全部。 使用上面的代碼,控制檯只是寫入第一個匹配的單詞。
我必須使用foreach嗎?但是如何?
例如:
關鍵字= {「want」,「buy」,「will」,「sell」};
sentence =「我想買點食物。」
那麼結果:
想,買
當沒有匹配的詞時它顯示了什麼?我無法用int count = matches.Split()。長度;當沒有匹配詞時,它始終計數1 – REY
@REY - 如果沒有匹配,它將顯示一個空字符串。我不知道'int count = matches.Split()。Length'如何適用於我的代碼。它不會用我的任何'matches'定義進行編譯。 – Enigmativity
我只是使用另一個正則表達式來查找只有alfanumeric,它工作得很好。 看起來你的代碼輸入了split()。length檢測到的東西,所以它在空的時候總是數爲1 – REY