2014-10-10 42 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

相关问题