繁体   English   中英

使用正则表达式Java从html源提取文本

[英]Extract text from html source using regular expressions java

我喜欢使用正则表达式从html页面提取文本。 这是我的代码:

String regExp="<h3 class=\"field-content\"><a[^>]*>(\\w+)</a></h3>";
    Pattern regExpMatcher=Pattern.compile(regExp,Pattern.UNICODE_CHARACTER_CLASS);

    String example="<h3 class=\"field-content\"><a href=\"/humana-akcija-na-kavadarechkite-navivachi-lozari\">Проба 1</a></h3><h3 class=\"field-content\"><a href=\"/opshtina-berovo-ne-mozhe-da-sostavi-sovet-0\">Проба 2</a></h3>";
    Matcher m=regExpMatcher.matcher(example);
    while(m.find())
    {

        System.out.println(m.group(1));
    }

我喜欢获取值Проба 1Проба 2 但是,我只得到第一个值Проба 1 我怎么了

使用正则表达式+ HTML是亵渎行为。 但是,如果您真的想受到诅咒,那么这里就是(您已经警告过):


String regExp = "<h3 class=\"field-content\"><a[^>]*>([\\w\\s]+)</a></h3>";
                                                       ^updated part

由于Проба 1Проба 2还包含空格,因此您需要在模式中包含\\\\s

要发现黑暗面的力量,可以尝试以下模式:

<h3 class=\"field-content\"><a[^>]*>([^<]+)</a></h3>

不要忘记之前设置UNICODE_CASE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM