解析具有特定条件的字符串

时间:2016-08-21 12:29:29

标签: ios swift2

如何修剪此格式的字符串:

https://xxx.kflslfsk.com/kjjfkskfjksf/v1/files/media/93939393hhs8.jpeg

到此?

media/93939393hhs8.jpeg

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

我可以使用stringByTrimmingCharactersInSet,但我不知道如何指定我想要的条件:

let trimmedString = myString.stringByTrimmingCharactersInSet(
  NSCharacterSet.whitespaceAndNewlineCharacterSet() // what here in my case ??
)

以上是用于删除空白区域,但这不是这种情况。

2 个答案:

答案 0 :(得分:4)

由于字符串是URL获取路径组件,除去最后2项之外的任何内容,并使用斜杠分隔符连接项目。

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)
}

答案 1 :(得分:1)

你没有修剪,你正在解析。

没有任何一个电话会做你想要的。我建议编写一个代码块,使用componentsSeparatedByString("\n")将其分成行(每行一个URL),然后分别解析每一行。

您可以在每一行上使用componentsSeparatedByString("/")将其分解为斜线之间的片段,然后将最后两个片段组合在一起。

(我故意不为你写出代码。你应该为自己做这些。我只是指出你正确的方向。)

您也可以使用NSURLComponents将每一行视为一个网址,但我不确定如何在文件名之前获取网址的最后一部分(例如“媒体”或“乐高” “)用这种方法。