![](/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.