有一个网站,我要解析的内容。来源如下
<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#Norfolk#Virginia#http://provisioning.streamtheworld.com/pls/WNVZFM.pls#Top 40
WNVZ - Z104#Norfolk#Virginia#http://provisioning.streamtheworld.com/pls/WNVZFM.pls#Top 40 等
所以,我想剪切所有这些,字符串是“.pls”或“.m3u”
抱歉,我的英语很糟糕。答案 0 :(得分:3)
使用正则表达式解析HTML很困难;使用XML解析器(如SAX)可能会更好。
答案 1 :(得分:1)
不要尝试使用正则表达式,因为HTML不规则,并且边缘情况的数量将使编码成为正则表达式。相反,您将使用诸如JTidy之类的HTML解析器获得更可靠的解决方案。
答案 2 :(得分:0)
如果你坚持使用正则表达式,我会为你制作这个正则表达式:
搜索:
<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