我的输入是
This is <a> <test> mat<ch>.
输出应为
1. <a>
2. <test>
3. <ch>
我试过这个
string input1 = "This is <a> <test> mat<ch>.";
var m1 = Regex.Matches(input1, @"<(.*)>");
var list = new List<string>();
foreach (Match match in m1)
{
list.Add(match.Value);
}
这会将<a> <test> mat<ch>
作为列表中的单个元素返回。
答案 0 :(得分:14)
让你的正则表达式非贪婪
var m1 = Regex.Matches(input1, @"<(.*?)>");
或使用基于否定的正则表达式
var m1 = Regex.Matches(input1, @"<([^>]*)>");
答案 1 :(得分:3)
您可以简单地使用以下正则表达式
(<.*?>)
//^^ Using Non greedy
如果出现类似<test<a<b>>>
然后你可以简单地使用
(<[^>]>)
输出:
<b>