Как получить контент из таблицы, используя ее идентификатор с регулярным выражением? - PullRequest
1 голос
/ 18 января 2010

Мне нужно отсортировать строку html, чтобы получить необходимое содержимое. Теперь мне нужно перебрать строки таблицы в таблице, которые имеют идентификатор. Как мне сделать это с помощью регулярного выражения?

Ответы [ 4 ]

1 голос
/ 18 января 2010

Зависит от того, насколько регулярным является текст HTML. Например, учитывая эту таблицу:

<table>
  <tr><td>1</td><td>Apple</td></tr>
  <tr><td>2</td><td>Ball</td></tr>
  <tr><td>3</td><td>Cookie</td></tr>
<table>

Следующее регулярное выражение находит идентификаторы в первом столбце:

(?<=<tr><td>).*?(?=</td>)
1 голос
/ 18 января 2010

Регулярные выражения нельзя использовать для разбора HTML; HTML не является регулярным. Используйте правильную библиотеку HTML-анализатора.

0 голосов
/ 24 мая 2012

Попробуйте это

Dim HTML As String = contentText
Dim options As RegexOptions = RegexOptions.IgnoreCase Or RegexOptions.Singleline
Dim regex As Regex = New Regex("<table[^>]*>(.*)</table>", options)
Dim match As MatchCollection = regex.Matches(HTML)
Dim sb As StringBuilder = New StringBuilder
For Each items As Match In match
    sb.Append(items.ToString & vbLf)
Next
TextBox.Text = sb.ToString
0 голосов
/ 18 января 2010

Если вы запустите страницу через html-парсер, такой как BeautifulSoup, то вы можете предварительно оптимизировать его, чтобы у такого рода регулярных выражений был шанс.Но если вы все равно разбираете html ...

...