簡體   English   中英

在大於小於之間獲取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM