java - 从 HTML 页面中获取特定行并将其放入 String 中

标签 java regex jsoup

我正在尝试从此网页解析 html 的特定区域:

http://en.wikipedia.org/w/api.php?action=parse&page=Ringo_Starr&prop=text&section=0&format=txtfm&disablepp&redirects

[请注意,这不是源页面,它显示 html 标签,但我对此页面的实际源代码感兴趣 (Ctrl+u)]。

具体来说,我希望将所有以以下内容开头的行:

<span style="color:blue;">&lt;p&gt;</span>

转换为字符串。

enter image description here

这是我试图解决的问题 - 但我似乎还很遥远:

      Document doc = Jsoup.connect("http://en.wikipedia.org/w/api.php?action=parse&page=Ringo_Starr&prop=text&section=0&format=txtfm&disablepp&redirects").get();   
      Elements elements = doc.select("span");
      for (Element e : elements) {
           if(e.text().equals("&lt;p&gt;")){
               System.out.println("now get that whole line");
           }
     }

注意:我在这里使用 jsoup ——但是直接的正则表达式会更有效吗?

最佳答案

直接的正则表达式可能是一个更好的主意。首先尝试一下这个:

Pattern pat=Pattern.compile("^<span style=\"color:blue;\">&lt;p&gt;</span>.+&");

在这里,^开始行,<span style="color:blue;">&lt;p&gt;</span>从字面上匹配,我们就有一个或多个 non-line-terminator characters :

The regular expression . matches any character except a line terminator unless the DOTALL flag is specified.

$指定行结束符。

关于java - 从 HTML 页面中获取特定行并将其放入 String 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18644203/

相关文章:

java - JSoup 内容与使用桌面 Web 浏览器时不同

java - 我怎样才能让我的测试版过期?

java - session 注销/超时

java - 如何向散点图添加比例尺或 Axis ?

javascript - 查找倒数范围的函数式方法

regex - BASH 中的正则表达式

java - 解析不同格式的日期的推荐方法是什么?

java - Jsoup CSS 标签深入 html 页面

java - 如何在 jsoup 中使用选择器语法获取属性

java - 创建 Java Lambda 函数时是否需要捆绑 AWS SDK 依赖项