这是一个字符串:
"http://l2.yimg.com/bt/api/res/1.2/iis49xBsStLiYI6LjauR6Q--/YXBwaWQ9eW5ld3M7Zmk9ZmlsbDtoPTg2O3E9NzU7dz0xMzA-/http://media.zenfs.com/fr_FR/News/LeMonde.fr/1515504_3_f73c_le-cyber-harcelement-est-une-realite-trop-lo_450282425a88c544c2ff4121a5d9dab4.jpg"
此字符串是两个网址的串联。我想只提取第二个网址:
"http://media.zenfs.com/fr_FR/News/LeMonde.fr/1515504_3_f73c_le-cyber-harcelement-est-une-realite-trop-lo_450282425a88c544c2ff4121a5d9dab4.jpg"
我怎样才能使用Java?
答案 0 :(得分:2)
删除一切未找到的“http://”:
String url2 = str.replaceAll("(?i).+(?=https?://)", "");
这将不敏感地工作,并匹配http
或https
协议。
答案 1 :(得分:2)
试试这个。 “str”是url字符串
System.out.println(str.substring(str.lastIndexOf("http:")));
答案 2 :(得分:2)
如果要提取URL,只需查找http
的最后一个实例,并获取子字符串:
String secondUrl = firstUrl.substring(firstUrl.lastIndexOf("http"));
答案 3 :(得分:1)
尝试使用字符串的.split()
方法,如下所示:
String oneURL = twoURLs.split("(?<!^)(?=http://)")[1];
这会将字符串拆分到不在字符串末尾的位置,但后跟http://
。有了这个,你应该得到一个像这样的数组:
["http://l2.yimg.com/bt/api/res/1.2/iis49xBsStLiYI6LjauR6Q--/YXBwaWQ9eW5ld3M7Zmk9ZmlsbDtoPTg2O3E9NzU7dz0xMzA-/", "http://media.zenfs.com/fr_FR/News/LeMonde.fr/1515504_3_f73c_le-cyber-harcelement-est-une-realite-trop-lo_450282425a88c544c2ff4121a5d9dab4.jpg"]
[1]
只接受该数组的第二个元素。
正则表达式的解释和演示:http://regex101.com/r/eW6mZ0