Java 从HTML页面中获取特定行并放入字符串
我正在尝试解析此网页中的特定html区域:Java 从HTML页面中获取特定行并放入字符串,java,regex,jsoup,Java,Regex,Jsoup,我正在尝试解析此网页中的特定html区域: http://en.wikipedia.org/w/api.php?action=parse&page=Ringo_Starr&prop=text§ion=0&format=txtfm&disablepp&redirects [请注意,这不是源页面,它显示html标记,但我对该页面的实际源(Ctrl+u)感兴趣] 具体而言,我希望将以下所有行开头: <span style="color:b
http://en.wikipedia.org/w/api.php?action=parse&page=Ringo_Starr&prop=text§ion=0&format=txtfm&disablepp&redirects
[请注意,这不是源页面,它显示html标记,但我对该页面的实际源(Ctrl+u)感兴趣]
具体而言,我希望将以下所有行开头:
<span style="color:blue;"><p></span>
注意:我在这里使用的是jsoup——但是直接正则表达式会更有效吗?直接正则表达式可能更好。首先,请尝试以下方法:
Pattern pat=Pattern.compile("^<span style=\"color:blue;\"><p></span>.+&");
Pattern pat=Pattern.compile(“^p.+&”);
这里,^
开始行,p
按字面匹配,然后我们有一个或多个:
正则表达式。匹配除行终止符以外的任何字符,除非指定了点所有标志
而
$
指定了行的结尾。一个直接的正则表达式可能是一个更好的主意。首先,请尝试以下方法:
Pattern pat=Pattern.compile("^<span style=\"color:blue;\"><p></span>.+&");
Pattern pat=Pattern.compile(“^p.+&”);
这里,^
开始行,p
按字面匹配,然后我们有一个或多个:
正则表达式。匹配除行终止符以外的任何字符,除非指定了点所有标志
而
$
指定了行的结尾。你就不能直接写吗
System.out.println(e.nextElementSibling().text())
你还必须检查
e.attr("style").equals("color:blue;")
你就不能写吗
System.out.println(e.nextElementSibling().text())
你还必须检查
e.attr("style").equals("color:blue;")
您需要在模式参数中转义引号,它是
Pattern pat=Pattern.compile(“^p.+&”)代码>。您的示例未编译。@反斜杠抱歉,刚刚返回。是的,我的错。太习惯于IDE为我做这件事了:/谢谢你们两个,成功了。@Hexafrance还更改了模式声明,您的模式不会编译,模式没有构造函数。您需要在模式参数中转义引号。另外,它是pattern pat=pattern.compile(^p.+&”)代码>。您的示例未编译。@反斜杠抱歉,刚刚返回。是的,我的错。太习惯于IDE为我做这件事了:/谢谢你们两个,成功了。@Hexafrance还更改了模式声明,您的模式不会编译,模式没有构造函数。