显示字符串中的下一组单词

时间:2012-05-23 05:09:51

标签: c# asp.net regex string string.format

我有以下代码:

 int numberOfWords = 50;

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

此代码显示字符串中的前50个单词。现在我要显示接下来的50个单词(第51个单词到第100个单词)。我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用相同的正则表达式,但在前5个单词后开始。因为你在firstWords中有前50个单词所以我们必须在这五十个单词之后开始。因此,我们将在firstWords中的五十个单词之后获取结果的子串。 firstWords.Length将成为第二个5个单词的正则表达式的新起点。

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

答案 1 :(得分:1)

如果您想匹配多个string

代码像这样:

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列表中。