解决方法
由于需要重复使用单词,因此需要先行断言:
Regex regexObj = new Regex( @"( # Match and capture in backreference no. 1: \w+ # one or more alphanumeric characters \s+ # one or more whitespace characters. ) # End of capturing group 1. (?= # Assert that there follows... (\w+) # another word; capture that into backref 2. ) # End of lookahead.",RegexOptions.IgnorePatternWhitespace); Match matchResult = regexObj.Match(subjectString); while (matchResult.Success) { resultList.Add(matchResult.Groups[1].Value + matchResult.Groups[2].Value); matchResult = matchResult.NextMatch(); }
对于三人组:
Regex regexObj = new Regex( @"( # Match and capture in backreference no. 1: \w+ # one or more alphanumeric characters \s+ # one or more whitespace characters. ) # End of capturing group 1. (?= # Assert that there follows... ( # and capture... \w+ # another word,\s+ # whitespace,\w+ # word. ) # End of capturing group 2. ) # End of lookahead.",RegexOptions.IgnorePatternWhitespace);
等等