一尘不染

RegEx匹配字符串多次

c#

我正在尝试从介于<<和>>之间的字符串中提取值。但是它们可能会发生多次。

任何人都可以使用正则表达式来匹配它们吗?

this is a test for <<bob>> who like <<books>>
test 2 <<frank>> likes nothing
test 3 <<what>> <<on>> <<earth>> <<this>> <<is>> <<too>> <<much>>.

然后,我想foreach GroupCollection以获取所有值。

任何帮助大受好评。谢谢。


阅读 325

收藏
2020-05-19

共1个答案

一尘不染

使用肯定的正视和断言的后跟来匹配尖括号,使用.*?以匹配这些括号之间尽可能短的字符序列。通过迭代方法MatchCollection返回的值来查找所有值Matches()

Regex regex = new Regex("(?<=<<).*?(?=>>)");

foreach (Match match in regex.Matches(
    "this is a test for <<bob>> who like <<books>>"))
{
    Console.WriteLine(match.Value);
}

DotNetFiddle中的LiveDemo

2020-05-19