在最后一次插入字符串'。'在字符串中

时间:2014-08-02 15:20:29

标签: ios objective-c

我有这个NSString:

@"aa.bb.cc.png"

我想在.png之前插入myString来制作

@"aa.bb.ccSTUFF.png"

有没有更好的方法来做到这一点,而不是反复迭代直到'。找到,然后在位置拆分,然后将component1 + stuff + extension一起添加?

由于

2 个答案:

答案 0 :(得分:2)

试试这个:

NSString *path = [originalPath stringByDeletingPathExtension];
path = [path stringByAppendingString:myString];
path = [path stringByAppendingPathExtension:[originalPath pathExtension]];

答案 1 :(得分:1)

您可以使用正则表达式:

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression
    regularExpressionWithPattern:@"[.]([^.]*)$"
    options:NSRegularExpressionCaseInsensitive
    error:&error];
NSString *res = [regex stringByReplacingMatchesInString:str
    options:0
    range:NSMakeRange(0, [str length])
    withTemplate:@"STUFF.$1"];

正则表达式背后的想法是匹配最后一个点和扩展名,然后替换为您选择的附加字符串(替换模板中的$1表示第一个捕获组的内容,对应于扩展名。)