2012-05-23 12 views
0

我有以下代碼:顯示下組字

int numberOfWords = 50; 

string regexMatch = string.Format(@"^(\w+\b.*?){{" + numberOfWords + "}}"); 
string firstWords = Regex.Match(result, regexMatch).Value; 

這個代碼顯示在字符串中的第50個字。現在我想顯示接下來的50個單詞(第51個單詞到第100個單詞)。我該怎麼做?

+0

你下一個50是什麼意思?你可以像「計數器」一樣創建新的變量,並將其放入一個循環中,並乘以numberOfWords *計數器(第一次計數器將爲1,下一次計數器爲2,依此類推......){+ numberOfWords * couner +「} ... –

+0

如果問題解決了,接受一個答案 – Writwick

回答

2

您可以使用相同的正則表達式,但在第一個5o字之後開始。由於你在第一個單詞中有前50個單詞,因此我們必須在這五十個單詞之後開始。因此,我們將在第一個單詞中包含五十個單詞之後的結果的子串。 firstWords.Length將成爲第二個5o字的正則表達式的新起點。

string secondWords = Regex.Match(result.Substring(firstWords.Length).Trim(), regexMatch).Value; 
+0

字符串secondWords的值爲空值可能是什麼原因? – user1509

+0

你能顯示出你有的字符串嗎?我的意思是結果值 – Adil

+0

我檢查了問題是我們在第一個五十個單詞後面留下的字符串開始處的空格字符。by statement result.Substring(firstWords.Length)現在我刪除了該空間並且它正在工作 – Adil

1

如果你想匹配多個string S,

這樣的代碼:

List<string> Words = new List<string>(); 
for(int i = 0; (result.Length - (i * numberOfWords)) < numberOfWords; i++) 
{ 
    Words.Add(Regex.Match(result.Substring(i * numberOfWords).Trim(), regexMatch).Value) 
} 

你得到的當前字符串中的50個單詞列表!但是,如果在string的末尾少於50個單詞,它將不會將這些單詞添加到Words列表中。