2014-10-10 70 views
0

我正在查找字符串中字符的最後一個實例。鑑於Swift處理字符串(範圍)的方式不同,我希望以前有人遇到過這種情況,因爲我似乎無法找出處理它的最佳方法。字符的最後一個實例

我想解析的字符串類似於「http://imanimage_thatlooks_likethis_andmypixare_380.jpg」。我需要解析最後一個「_」和最後一個「。」之間的段。所以編號爲380.每個鏈接都以這種方式格式化,但Swift的子字符串方法對於我來說仍然有些陌生,包含不同的字節長度。

提前致謝!

回答

1
// regular expression to find substring between last "_" and last "." 
let sourceStr = "abc_defg_hijk_lmn.xyz" 
let regex = NSRegularExpression(pattern: "_([^_]*)\\.[^\\.]*$", options:nil, error:nil); 
if let matchingResult = regex?.firstMatchInString(sourceStr, options: nil, range: NSMakeRange(0, countElements(sourceStr))) { 
    let matchingRange = matchingResult.rangeAtIndex(1) 
    let matchingString = (sourceStr as NSString).substringWithRange(matchingRange) 
} 
+0

使用上述,我可以得到一個NSRange,但是當試圖以這種方式使用它時myString.substringWithRange(matchingRange)它說一個string.index必須被使用,而不是一個NSRange。 – steventnorris 2014-10-10 18:55:05

+0

好的,我添加了一行來獲取子字符串。 – 2014-10-10 19:11:23

+0

這似乎工作。將從String.index工作的Swift字符串對象轉換爲NSString是否存在任何潛在的問題? – steventnorris 2014-10-10 19:18:12

相關問題