从URL解析字符串值

时间:2016-08-26 16:00:38

标签: java android regex string split

这个模式中有一个字符串(这是一个URL)https://xxx.kflslfsk.com/kjjfkskfjksf/v1/files/media/93939393hhs8.jpeg 现在我想把它剪辑到这个

media/93939393hhs8.jpeg

我想在第二个斜杠/之前删除所有字符。

我是java的新手,但在swift(iOS)中,这就是我们这样做的方式:

if let url = NSURL(string:"https://xxx.kflslfsk.com/kjjfkskfjksf/v1/files/media/93939393hhs8.jpeg"), pathComponents = url.pathComponents {
    let trimmedString = pathComponents.suffix(2).joinWithSeparator("/")
    print(trimmedString) // "output =  media/93939393hhs8.jpeg"
}

基本上,我正在删除此Url期望的最后2个项目然后的所有内容。

我正在使用/加入这两项。

4 个答案:

答案 0 :(得分:2)

String ret = url.substring(url.indexof("media"),url.indexof("jpg"))

答案 1 :(得分:1)

你熟悉正则表达式吗?尝试使用此Regex(在链接中说明)捕获用/分隔的最后2个项目:

.*?\/([^\/]+?\/[^\/]+?$)

以下是Java中的示例(不要忘记使用\\转义:

Pattern p = Pattern.compile("^.*?\\/([^\\/]+?\\/[^\\/]+?$)");
Matcher m = p.matcher(string);

if (m.find()) {
    System.out.println(m.group(1));
}

或者有split(..)功能,但我建议你按照上面的方式。 (最后用StringBuilder正确地连接分离的字符串。

String part[] = string.split("/");
int l = part.length;
StringBuilder sb = new StringBuilder();
String result = sb.append(part[l-2]).append("/").append(part[l-1]).toString();

两者都给出相同的结果:media/93939393hhs8.jpeg

答案 2 :(得分:1)

 string result=url.substring(url.substring(0,url.lastIndexOf('/')).lastIndexOf('/'));

使用拆分并添加最后2项

  string[] arr=url.split("/");
  string result= arr[arr.length-2]+"/"+arr[arr.length-1]

答案 3 :(得分:1)

SELECT (    
    SELECT 'Total Laptops' Device,COUNT(*)  DeviceCount
    from [Tasks].[dbo].[Lifecycle] 
    where oldwsid like '%L%' and Quarter = 'Q1' 
    UNION ALL
    SELECT 'Total Desktops' Device,COUNT(*) DeviceCount
    from [Tasks].[dbo].[Lifecycle] 
    where oldwsid like '%W%' and Quarter = 'Q1'      

) as A