大佬们,如何同时截取html中转换的string内多个标签

我想要截取

,,

三个标签内容的东西
我原有的方法是先截取,然后再原string中删去找到的,在进行下一个截取
但是这样打乱了原有的顺序,而且截取内容不全

如何同时截取这三个标签呢

用正则表达式

(?<=\<w+\>).*?(?=\<\/w+\>)
string html = ...;
string pattern = @"(?<=\<w+\>).*?(?=\<\/w+\>)";
string[] labels =  {"<p>", "<table>" };
string[] result = Regex.Matches(html, pattern).Cast<Match>()
.Where(x => labels.Contains(x.Value))
.Select(x => x.Value).ToArray();
foreach (string s in result)
Console.WriteLine(s);

百度可以找到一些操作document的工具类,是按照document节点操作的,比你拿字符串操作规则性更强一点,准确率也高,可以找下看看