2011-11-05 41 views
0

我有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

回答

5

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

+0

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

+0

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

+0

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