![](/img/trans.png)
[英]How to find text between less and greater than, then strip the <> in Java?
[英]Grabbing Data between Greater than Less Than
我主要是一位在Java方面有少许经验的SQL程序员。
直到现在为止,我都不会厌倦我编写的所有代码。 但是在这一点上,我试图从股票市场站点中提取数据,并将该数据放入创建CSV的文件中。
我正在逐行检索html代码,该代码使用td和/ td打开和关闭列。 我想抓住比符号和小于号大的数据,然后移动到下一个。 只是努力弄清楚这一点,而又不会使其变得太复杂。
说明预期和实际的结果:
所以如果我有
<td class="blah" class="blah">STOCK</td><td class="blah" class="blah">STOCK COMPANY NAME</td>
我想将STOCK转换为字符串,然后再选择STOCK公司名称。
我需要的是> ***** <...之间的代码,仅此而已,因为我很喜欢学习过程,只是被困了几个小时。
您可以将正则表达式与-look和back-ahead一起使用- (?<=>).*?(?=<)
。
(?<=>)
表示前面有大于号
.*?
匹配任意数量的字符,非贪婪
(?=<)
后跟一个小于号
String input = "<td class=\"blah\" class=\"blah\">STOCK</td><td class=\"blah\" class=\"blah\">STOCK COMPANY NAME</td>";
Matcher matcher = Pattern.compile("(?<=>).*?(?=<)").matcher(input);
List<String> res = new ArrayList<>();
while (matcher.find()) res.add(matcher.group());
res = res.stream().filter(s -> !s.isEmpty()).collect(Collectors.toList()); //remove empty strings
System.out.println(res);
输出量
[STOCK, STOCK COMPANY NAME]
注意 :最好改用HTML解析器,例如jsoup 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.