好吧,我知道每个人都会告诉我不要使用 RegEx 来解析 HTML,但我在 Android 上编程并且没有准备好访问 HTML 解析器(我知道)。此外,这是服务器生成的 HTML,应该比用户生成的 HTML 更一致。
正则表达式如下所示:
Pattern patternMP3 = Pattern.compile(
"<A HREF=\"[^\"]+.+\\.mp3</A>",
Pattern.CASE_INSENSITIVE |
Pattern.UNICODE_CASE);
Matcher matcherMP3 = patternMP3.matcher(HTML);
while (matcherMP3.find()) { ... }
输入的 HTML 全部在一行中,这是导致问题的原因。当 HTML 位于不同的行时,此模式有效。有什么建议吗?
最佳答案
正则表达式
"<A HREF=\"([^\"]+)\"[^>]*>([^<]+?)\\.mp3</A>"
应该匹配您的链接,并且在其组中包含链接和文件名。
但请注意,href
的参数不一定需要用 html 中的引号引起来。 (或者,如果需要,浏览器和开发人员都不知道 =)。 )
关于java - 尝试使用 Java 正则表达式解析 HTML 目录列表中的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2542559/