2012-02-17 3 views
2

я пытаюсь получить некоторую информацию о веб-странице с помощью регулярных выражений на Visual Basic 2010Regex, все между 2 HTML-теги vb.net

это что-то вроде этого:

<SPAN CLASS="clear"></SPAN> 
<h2> blabla </h2> 
<h2> blabla </h2> 
<b> blabla </b> 

etc etc 

<SPAN CLASS="clear"></SPAN> 

то, что я хочу все между 2 также тегами h2 и любым другим тегом html, который существует.

это возможно?

Я уже пробовал (. ?) И. и \ w *, но он ничего не возвращает ...

+1

Я думаю, что вам не нужно работать с RegEx, но используйте XMlReader в своем коде. – Terry

ответ

3

Возможно, лучше использовать XML-парсер для этого, но я предполагаю, что это одноразовая царапина или подобное.

Если я вас правильно понял, то это должно получить все данные между тегами:

Dim regex As New Text.RegularExpressions.Regex("<(.|\n)*?>") 
Dim result As String = regex.Replace(yourHtml, String.Empty) 

Вы можете использовать это, чтобы получить только теги H2 и данные:

Dim regex As New Text.RegularExpressions.Regex("<\s*h2[^>]*>(.*?)<\s*/\s*h2>") 
Dim results As New Text.StringBuilder 
For Each m As Text.RegularExpressions.Match In regex.Matches(yourHtml) 
    results.Append(m.Value) 
Next 
0

alundy уже есть хороший ответ, но вы тоже можете попробовать это.

Dim findtext2 As String = "(?<=<h2>)(.*?)(?=</h2>)" 
Dim myregex2 As String = TextBox1.Text 'Your HTML code 
Dim doregex2 As MatchCollection = Regex.Matches(myregex2, findtext2) 
Dim matches2 As String = "" 
For Each match2 As Match In doregex2 
    matches2 = matches2 + match2.ToString + Environment.NewLine 
Next 
MsgBox(matches2) 'Results 

Не забывайте, что Imports System.Text.RegularExpressions.

Выше код получает всю информацию между 2 строками, в данном случае - <h2> и </h2>. Вы можете использовать все, что хотите (это не обязательно тег, даже html).

Смежные вопросы