正则表达式解析错误

问题描述:

我有HTML含有这种文本正则表达式解析错误

....... 
<a class="product_name" href="index.php?productID=29785">Funny</a> 
........ 
<a class="product_name" href="index.php?productID=29787">Very Funny</a> 
...... 

我想HREF属性值和文本链接,所以我想获得

"index.php?productID=29785", "Funny" 
"index.php?productID=29787", "Very Funny" 

我用

MatchCollection mc = Regex.Matches(pageData, 
    "<a class=\"product_name\" href=\"(.+)\">(.+)</a>"); 

为此。但是,当我调试代码,我看到mc.Count = 0

我想我没有正确逃脱引号,但我不知道。

+5

解析与正则表达式的HTML是臭名昭著的不是一个好主意 –

+1

我得到数= 2在这里,顺便说一下,捕捉组按预期工作。显示的正则表达式适用于所示的html。如果它不起作用,那么无论是:你没有相同的呈现方案,或者b:html更复杂,因为你不应该使用正则表达式 –

+1

来解析HTML,所以很疯狂。它也适用于这里(http://regexhero.net/tester/) – Sklivvz

不要用正则表达式解析HTML。看到here为什么有一个令人信服的理由。使用HTML Agility Pack代替。

+0

正则表达式不适合解析html,但我不会在这个简单的任务中为我的项目添加一个新的依赖项。 –

+0

@ L.B - 那么你会建议什么?编写你自己的解析器/标记器? – Oded

+0

不,我会使用**正则表达式** –

+1

-1 - http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Oded

+0

谢谢你的信息 – Mikhail