<table >
<tr>
<td colspan="2" style="height: 14px">
tdtext1
<a>hyperlinktext1<a/>
</td>
</tr>
<tr>
<td>
tdtext2
</td>
<td>
<span>spantext1</span>
</td>
</tr>
</table>
这是我的示例文字。 如何在C#中编写正则表达式以获取td
,span
,超链接的innertext的匹配。
答案 0 :(得分:7)
修改强>
根据下面的评论,这里有一些如何获取这些标签的InnerText的例子。非常简单。
var doc = new HtmlDocument();
doc.LoadHtml("...your sample html...");
// all <td> tags in the document
foreach (HtmlNode td in doc.DocumentNode.SelectNodes("//td")) {
Console.WriteLine(td.InnerText);
}
// all <span> tags in the document
foreach (HtmlNode span in doc.DocumentNode.SelectNodes("//span")) {
Console.WriteLine(span.InnerText);
}
// all <a> tags in the document
foreach (HtmlNode a in doc.DocumentNode.SelectNodes("//a")) {
Console.WriteLine(a.InnerText);
}
答案 1 :(得分:0)
static void Main(string[] args)
{
//...
// using (WebClient client = new WebClient()) // WebClient class inherits IDisposable
// {
HtmlDocument doc = new HtmlWeb().Load("http://www.freeclup.com");
foreach (HtmlNode span in doc.DocumentNode.SelectNodes("//span"))
{
Console.WriteLine(span.InnerText);
}
Console.ReadKey();
// }
}
答案 2 :(得分:-1)
您可以使用以下内容:
const string pattern = @"[a|span|td]>\s*?(?<text>\w+?)\s*?</\w+>";
Regex regex = new Regex(pattern, RegexOptions.Singleline);
MatchCollection m = regex.Matches(x);
List<string> list = new List<string>();
foreach (Match match in m)
{
list.Add(match.Groups["text"].Value);
}