在C#中获取“&lt; <name>&gt;”中的文本

时间:2017-11-04 00:06:00

标签: c# regex

我正在尝试仅获取双尖括号内的文本: 从这样的文本,然而它返回我整个字符串,而我只是想在双&lt;&lt;&gt;&gt;内获取文本括号中。

line2="Name: <<NAME>>   (<<COURSE>>)"
var pattern=@"<<.*?>>";
MatchCollection matches= Regex.Matches(line2,pattern);

我正确地做了,请指导?

1 个答案:

答案 0 :(得分:0)

使用此分组构造:(?< name > subexpression ),如:

string line2 = "Name: <<NAME>>   (<<COURSE>>)";
var pattern = @"<<(?<value>\w+)\>>";
MatchCollection matches = Regex.Matches(line2, pattern);
string name = matches[0].Groups["value"].Value; // "NAME"
string course = matches[1].Groups["value"].Value; // "COURSE"

它将捕获的子表达式放入命名组(此处为“value”)。要访问匹配项,请使用Groups数组,就像我上面所做的那样。

更多信息提供quick-reference for regular expressions.