2013-01-01 37 views
0

我有格式的字符串正則表達式。它會輸出單詞列表。正則表達式匹配單詞的前n OCCURENCES

謝謝

+5

如何正則表達式應該知道一個詞是一個名詞?有時候,這對人類來說並不明顯。 –

+0

好吧,你想列出專有名詞? –

+0

你甚至不知道語言是什麼 – fge

回答

3

正則表達式不能用於計數。

所以不 - 你不能使用正則表達式找到前n個單詞。

+0

如果強制它,它可以。當然,表演會受到嚴重影響。 – nhahtdh

0

你的正則表達式是(\\s|^)([a-zA-Z]+?)<Noun>(\\s|$),在每一個找到的匹配,你應該使用$2通過使用下面的代碼來獲得結果

在C#中,你可以做到這一點:

 string type = "Noun"; 
    int top = 5; 

    MatchCollection mc = Regex.Matches("I<Noun> like<verb> to<Function> eat<verb> an apple<Noun>", String.Format("(\\s|^)([a-zA-Z]+?)<{0}>(\\s|$)", type)); 

    List<string> res = new List<string>(); 

    for (int i = 0; i < mc.Count && i < top; i++) 
    { 
     res.Add(mc[i].Result("$2")); 
    } 
+0

正在使用'C#' –

+0

這是什麼編程語言? – tripleee

+0

@ shiplu.mokadd.im oops,之前我訂閱了c#,剛剛添加了regex到訂閱,沒有注意到,沒有c#標籤。但正則表達式模式應該無論如何工作 – VladL