正则表达式在标签C#之间查找文本

时间:2013-11-19 18:04:48

标签: c# regex

我想剥离html标签,只返回标签之间的文本。这是我目前正在使用的内容。

string regularExpressionPattern1 = @"<td(.*?)<\/td>";
Regex regex = new Regex(regularExpressionPattern1, RegexOptions.Singleline);
MatchCollection collection = regex.Matches(value.ToString());

我目前获得<td>13</td>,我只想13

谢谢,

4 个答案:

答案 0 :(得分:4)

您需要获得不属于该组的组值。 试试这个

Match m = collection[0];
var stripped = m.Groups[1].Value;

答案 1 :(得分:4)

您可以像这样使用后视?<=和前瞻?=

(?<=<td>)(.*?)(?=<\/td>)

那应该只给你标签之间的文字。有关正则表达式和前瞻/后视的更多信息可以在Here找到。

此外,可以找到一个好的Regex测试人员Here。我用它来测试我写的所有正则表达式字符串。

答案 2 :(得分:3)

所以,使用HTML AgilityPack,这真的很容易......

 HtmlDocument  doc = doc.LoadHtml(value);
 var nodes = doc.DocumentNode.SelectNodes("//td//text()");

将TextNodes放入节点变量中。

答案 3 :(得分:-1)

使用     match.Groups [1]。价值