gpt4 book ai didi

ios - 在 RegEx 标识的 NSString 中的某个点添加一个字符,是否有比所有反向引用更有效的方法?

转载 作者:行者123 更新时间:2023-11-28 22:21:02 24 4
gpt4 key购买 nike

我想使用类似 http://imgur.com/isodf99.jpg 的 URL,在文件扩展名前添加字母 m。所以之前的 URL 变成了 http://imgur.com/isodf99m.jpg

我猜测识别该点的最佳方法是通过 RegEx(我知道我可以从末尾返回四个位置,但这不适用于 .jpeg)但是我无法找出它的最佳实现方式。我对如何说“找到随机字母和数字的字符串并在其末尾添加一个 m”感到困惑。

我的第一 react 是将 URL 的部分分成“代码前”、“代码”和“代码后”,并将它们保存为反向引用,然后重构它们,但在第二个反向引用中添加一个 m。

所以,这个截图举例说明了这一点:

enter image description here

(顺便说一下,该应用程序是 Patterns,总是被问到。)

但我不确定这是最好的方法。有没有更直接的方法?

最佳答案

如果您不坚持使用正则表达式,这会起作用:

NSString *url = @"http://imgur.com/isodf99.jpg";
url = [[[url stringByDeletingPathExtension]
stringByAppendingString:@"m"]
stringByAppendingPathExtension:[url pathExtension]];
NSLog(@"%@", url);
// http://imgur.com/isodf99m.jpg

或者,如果你使用 NSURL 而不是 NSString:

NSURL *url = [NSURL URLWithString:@"http://imgur.com/isodf99.jpg"];

// Extract the path:
NSString *path = [url path];

// Insert "m" before path extension:
path = [[[path stringByDeletingPathExtension]
stringByAppendingString:@"m"]
stringByAppendingPathExtension:[path pathExtension]];

// Rebuild URL with new path:
url = [[NSURL alloc] initWithScheme:[url scheme] host:[url host] path:path];

但是如果您更喜欢正则表达式:

NSString *url = @"http://imgur.com/isodf99.jpeg";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(\\.[^.]*)$"
options:0 error:NULL];
url = [regex stringByReplacingMatchesInString:url
options:0
range:NSMakeRange(0, [url length])
withTemplate:@"m$1"];

关于ios - 在 RegEx 标识的 NSString 中的某个点添加一个字符,是否有比所有反向引用更有效的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com