2016-08-21 59 views
1

我如何可以修剪我的字符串是這種形式:解析特定條件的字符串

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

以上是去掉空格,但這裏並非如此。

回答

4

由於字符串是一個URL獲取路徑組件,除了最後兩個項目之外的任何內容都會被刪除,並且使用斜線分隔符來加入項目。

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

@vadian正是我所需要的,非常感謝,感謝你的努力男人 –

+0

很酷。我知道'NSURLComponents',但不知道'NSURL'屬性'pathComponents'。謝謝你教我一個新的竅門。 (投票) –

+0

我假設pathComponents修剪像查詢字符串的東西? –

1

你沒有修整,你正在解析。

有沒有一個單一的電話會做你想做的。我建議編寫一個代碼塊,使用componentsSeparatedByString("\n")將其拆分爲行(每行一個URL),然後分別解析每行。

您可以在每行上使用componentsSeparatedByString("/")將其分割成斜槓之間的碎片,然後將最後2個碎片組合在一起。

(我故意不給你寫出來的代碼。你應該做的是自己。我只是指出你在正確的方向。)

您可能還可以使用NSURLComponents治療每行都作爲一個URL,但我不確定如何使用該方法獲取URL之前的最後一部分URL(例如「media」或「lego」)。

+0

@DananC似乎我的例子不夠清楚它只是一串字符串(請參閱更新後的問題),爲了更好的理解,我放了額外的行(雖然沒有幫助)***我是隻是指出你在正確的方向***它足夠我感謝迴應:)欣賞你的努力男人 –