由于需要重复使用单词,因此需要先行断言:
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();
}
Run Code Online (Sandbox Code Playgroud)
对于三人组:
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);
Run Code Online (Sandbox Code Playgroud)
等等