如何在关键短语之间获取字符串的某一部分(java)

问题描述 投票:0回答:1

所以我正在做一个程序,从一个网站上抓取街道名称,并将其搜索到另一个网站,但我很难从html代码中获取名称。那么用下面的代码,如何才能在html中每当出现一个街道名称时,就能得到一个隔离的字符串的关键字呢?下面是一段html的内容。

align="left"><td>490</td><td><a href="map.php?p=texas&id=74932">Woodland Heights Cir</a></td></tr>**<tr align="left"><td>491</td><td><a href="map.php?p=texas&id=74933">Woodmoor Dr</a></td></tr><tr align="left"><td>492</td><td><a href="map.php?p=texas&id=74934">Woodmoor Ln</a></td></tr><tr align="left"><td>493</td><td><a href="map.php?p=texas&id=74935">Woodstock Dr</a></td></tr><tr align="left"><td>494</td><td><a href="map.php?p=texas&id=74936">Woodvale Ct</a></td></tr><tr align="left"><td>495</td><td><a href="map.php?p=texas&id=74937">Zermatt Ct</a></td></tr></table></div>

我知道无论何时 </a></td></tr> 恰好前面提到了街道名称,而'>'在街道名称的开头。所以,我基本上需要得到这两个之间的所有内容,并将其添加到一个数组中,用于字符串中发生的每一个实例。

请原谅我的措辞有点差,我对java和一般的编程非常陌生,不知道该怎么称呼这样的东西。

java arrays search
1个回答
1
投票

如果你想快速和肮脏的使用模式匹配器(https:/docs.oracle.comjavase8docsapijavautilregexPattern.html。 - docs中的例子)来匹配链接,比如。

        String text = "...blah<a href="map.php?p=texas&id=74932">Woodland Heights Cir</a>.blah...";
        String patternString = "<a href=\"map\.php.*\">.*<\/a>"; 

        Pattern pattern = Pattern.compile(patternString);
        Matcher matcher = pattern.matcher(text);

        int count = 0;
        while(matcher.find()) {
            System.out.println("found: " + matcher.group(count));
            String[] result = matcher.group(count).split(">")[1].split("<")[0];
            count++;
        }

(未经测试,但应该足够接近)。

这里有更多信息和例子。http:/tutorials.jenkov.comjava-regexmatcher.html

另外,还有一些像JSoup这样的库可以帮助你完成这个过程。

Webscraping可能也值得你一试。https:/www.scrapingbee.comblogintroduction-to-web-scraping-with-java

© www.soinside.com 2019 - 2024. All rights reserved.