Java Regexp вопрос - PullRequest
       3

Java Regexp вопрос

0 голосов
/ 13 октября 2010

Есть веб-сайт, что я хочу разобрать.Источник:

 <tr> <td><a
 href="http://www.z104.com/"><b>WNVZ</b></a>
 - Z104</td> <td>Norfolk</td> <td>Virginia</td> <td><img
 src="mp3.gif" alt="MP3" width="12"
 height="12"></td> <td><a
 href="http://provisioning.streamtheworld.com/pls/WNVZFM.pls">64
 Kbps</a></td> <td>Top 40</td> </tr>

 <tr> <td><a
 href="http://www.z104.com/"><b>WNVZ</b></a>
 - Z104</td> <td>Norfolk</td> <td>Virginia</td> <td><img
 src="mp3.gif" alt="MP3" width="12"
 height="12"></td> <td><a
 href="http://provisioning.streamtheworld.com/pls/WNVZFM.pls">64
 Kbps</a></td> <td>Top 40</td> </tr>

... и т. Д.

Как я могу вырезать из него все данные, например, использовать регулярное выражение, возвращаемую строку, что мне нужно:

WNVZ - Z104 # Норфолк # Вирджиния # http://provisioning.streamtheworld.com/pls/WNVZFM.pls#Top 40

WNVZ - Z104 # Норфолк # Вирджиния # http://provisioning.streamtheworld.com/pls/WNVZFM.pls#Top 40 и т. Д.

так, я хочу вырезать всеэто где строка ".pls" или ".m3u"

извините, мой английский это дерьмо.

Ответы [ 3 ]

3 голосов
/ 13 октября 2010

Парсинг HTML с регулярным выражением затруднен; вам, возможно, повезет больше, если использовать XML-парсер, такой как SAX.

1 голос
/ 13 октября 2010

Не пытайтесь использовать регулярные выражения, поскольку HTML не является регулярным, а количество крайних случаев сделает кодирование регулярным выражением невозможным. Вместо этого у вас будет более надежное решение с использованием анализатора HTML, такого как JTidy .

0 голосов
/ 13 октября 2010

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

Поиск:

  <tr\b[^><]*>\s*<td\b[^><]*>\s*<a\b[^><]*>\s*<b>\s*(WNVZ)\s*<\/b>\s*<\/a>\s*-\s*(\w+)<\/td>\s*<td\b[^><]*>\s*(Norfolk)\s*<\/td>\s*<td\b[^><]*>\s*(Virginia)\s*</td>\s*<td\b[^><]*>\s*<img\b[^><]*>\s*</td>\s*<td\b[^><]*>\s*<a\b[^><]*href\s*=\s*["']([^"'><]+)["'][^><]*>[^><]*<\/a>\s*<\/td>\s*<td\b[^><]*>([^><]*)</td>

Замените на:

  $1 - $2#$3#$4#$5#$6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...