2016-06-05 3 views
0

Итак, это мой код:Regex случайный характер VB.Net

Dim sourceString As String = New System.Net.WebClient().DownloadString("www.example.com") 
    TextBox2.Text = sourceString 
    Dim findtext2 As String = "(?<=<div class=""books"">)(.*?)(?=</div>)" 
    Dim myregex2 As String = TextBox2.Text 
    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) 

Это становится все значения между <div class="books"> и </div>, но есть одна большая проблема.

После «книг» имеется 3 символа (например, <div class="books672">).

На example.com, то HTML, как это:

<div class="books321">Book1</div> 
<div class="books785">Book2</div> 
<div class="books547">Book3</div> 
<div class="books182">Book4</div> 
<div class="books317">Book5</div> 
<div class="books970">Book6</div> 

Как я мог получить "Книга1, Book2 ..."? Что-то для случайных символов существует в регулярном выражении?

+0

вы можете использовать '' – rock321987

+3

и да, не разобрать HTML с регулярными выражениями – rock321987

+1

[обязательной ссылкой] (http://stackoverflow.com/a/1732454/5240004) Сделайте себе одолжение и используйте библиотеку разбора HTML. – theB

ответ

0

При добавлении \w{1} оно распознает его как один случайный символ. В этом случае, мне нужно 3 случайных символы, так что решение будет: (? <=

)(.*?)(?=
)

(?<=<div class="books\w{3}">)(.*?)(?=</div>) 
Смежные вопросы