减去java文本字符串

时间:2018-04-25 07:48:57

标签: java split substring indexof

我想从网址中提取引用。

例如,我的网址如下:

"https://www.amazon.es/Lenovo-YOGA-520-14IKB-Ordenador-convertible/dp/B071WBF4PZ/"

我想只获取参考部分,即 B071WBF4PZ

我还想从这个html元素中提取价格:

"<div id="cerberus-data-metrics" style="display: none;" data-asin="B078ZYX4R5" data-asin-price="1479.00" data-asin-shipping="0" data-asin-currency-code="EUR" data-substitute-count="0" data-device-type="WEB" data-display-code="Asin is not eligible because it has a retail offer" ></div>"

我只需要获取 data-asin-price 属性的值。

可以使用indexOf', substring or split`来完成,但我不知道怎么做。

1 个答案:

答案 0 :(得分:3)

  • 参考部分:

代码:

String url = "https://www.amazon.es/Lenovo-YOGA-520-14IKB-Ordenador-convertible/dp/B071WBF4PZ/";

String[] parts = string.split("/");
// parts : 
// [0] = "https:"
// [1] = ""
// [2] =  "www.amazon.es"
// [3] = "Lenovo-YOGA-520-14IKB-Ordenador-convertible"
// [4] = "dp"
// [5] = "B071WBF4PZ"
// [6] = ""

String reference = parts[5]; // < this is the reference.

但是,我建议使用Screenshot

在访问parts.length() >= 6

之前,还要检查是否[5]
  • 价格部分:

使用Regular Expressions / patterns,您可以轻松解析html并提取data-asin-price等属性。在这种情况下,我不会使用正则表达式。但是,正则表达式不需要额外的库。

此RegEx:

(?:data-asin-price=")(\w*.\w*)

将匹配data-asin-price="之后的任何数字 - 因此匹配组1将为:1479.00