2015-05-04 4 views
1

Использование vb.net с использованием регулярного выражения, как бы восстановить href и стоимость?vb regex string match

Я пробовал различные варианты, и только что узнал, что регулярное выражение может быть различным в зависимости от языка, который означает, что я потратил 2 дня, пытаясь понять это

<div class="single-album" id="m-1_1184"> 
<span class="album-time link-text"> 
<a class="album-link tag-b b-ltxt-album b-sec-b b-tab-toy" 
href="/cx/1.1184" 
title="album | 5 cost">13£50</a> 
</span>`enter code here` 
<span class="separator">|</span> 
</div> 
+2

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 Использование 'HtmlAgilityPack' –

ответ

1

я действительно советую против using regex to parse HTML. Вместо этого используйте HtmlAgilityPack.

Тогда это просто и безопасно:

Dim html As String = File.ReadAllText("C:\Temp\html.txt") ' i've used this text file for your input 
Dim doc = New HtmlAgilityPack.HtmlDocument() 
doc.LoadHtml(html) 
Dim aHref As HtmlAgilityPack.HtmlNode = doc.DocumentNode.SelectSingleNode("//a[@class='album-link tag-b b-ltxt-album b-sec-b b-tab-toy']") 
If aHref IsNot Nothing Then 
    Dim href As String = aHref.GetAttributeValue("href", "") ' /cx/1.1184 
    Dim title As String = aHref.GetAttributeValue("title", "") 
    Dim costs As String = title.Split("|"c).Last().Trim() ' 5 cost 
End If 
+0

, который выглядит отличным кодом, к сожалению, не нужен мне, поскольку я пытался установить htmlagiltypack, прежде чем попробовать регулярное выражение, просто купите цифру, как установить его. – user4858969

+0

Вам не нужно« устанавливать »его, просто добавьте ссылку на скачанная dll в ссылках вашего проекта. Возможно, вам нужно сделать это видимым, выбрав свой проект, а затем в верхней части экрана «показать все файлы». http://stackoverflow.com/questions/4958483/how-to-install-html-agility-pack-in-my-c-sharp-project –

+1

@ user4858969 Вы можете вручную добавить ссылку * или * вы можете следить за простые инструкции на странице http://www.nuget.org/packages/HtmlAgilityPack](http://www.nuget.org/packages/HtmlAgilityPack). –