无法找到正确的正则表达式模式以获取html标记之间的值

时间:2013-12-10 00:28:45

标签: c# regex

我找不到在这个范围内获得价值的方法:

                    <span class="market_listing_price market_listing_price_with_fee">
            &#36;0.15 USD           </span>

我试过这个:

Regex regex = new Regex(@"<span class=""market_listing_price market_listing_price_with_fee"">(.*?)</span>");
Match match = regex.Match(result);
string result = match.Groups[1].Value;

但可能它与标签或符号不匹配......

4 个答案:

答案 0 :(得分:3)

我同意上述评论,您最好使用html agility pack。这将允许您使用XPath选择跨度的内容。

然后您可以使用

等语法
HtmlDocument doc = new HtmlWeb().Load(String.Format("http://sitecontainingspan.com"));

var value = doc.DocumentNode.SelectSingleNode("//span[@class='market_listing_price market_listing_price_with_fee']").InnerText;

这应该加载页面,找到具有正确类的跨度并从中提取值。

答案 1 :(得分:2)

RegexOptions.Singleline构造函数

添加Regex参数

答案 2 :(得分:1)

请考虑对您的正则表达式进行以下微小更改...

<span class=""market_listing_price market_listing_price_with_fee"">([\s\S]*?)</span>

祝你好运!

答案 3 :(得分:0)

您可以使用JQuery选择跨度的内容,如下所示: $( “market_listing_price”)。文本() 您可以根据文档中的位置进一步缩小范围,或者可以选择所有元素并对其进行操作。 结帐http://jquery.com/了解更多信息