java - 尝试使用 Java 正则表达式解析 HTML 目录列表中的链接

标签 java html android regex

好吧,我知道每个人都会告诉我不要使用 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/

相关文章:

android - 谷歌应用内购买 : How to check if a consumable product purchase status is pending?

java - NTEventLogAppender 不适用于我的 Java 应用程序

java - 使用 Jgrasp 打印字符串列表 (Java)

java - 多线程服务器数据库访问

html - CSS Grid 在设置 grid-row 时不会包裹 child

css - HTML 和 CSS : What do the <ul> and <li> tags stand for?

javascript - Google Chrome 中的 DOM 过载问题

Android webview 性能,我错过了什么?

java - 可嵌入的跨平台 Web 浏览器?

android - 在 Android 上忽略按键