Objective c 目标C-NSRange和rangeOfString

Objective c 目标C-NSRange和rangeOfString,objective-c,nsstring,match,nsrange,Objective C,Nsstring,Match,Nsrange,我对NSRange和rangeOfString有点问题。我想在一个给定的字符串中搜索一个子字符串,它可以正常工作,但是只需要找到一个精确的字符串,我需要找到一个开始总是相同,结束总是相同的子字符串。我已经用类似的东西试过了: match = [strIn rangeOfString: @"truni/begin/*/end"]; 但这不起作用。所以我需要一种方法来做到这一点。以下是代码的具体部分: NSRange match; match = [strIn rangeO

我对NSRange和rangeOfString有点问题。我想在一个给定的字符串中搜索一个子字符串,它可以正常工作,但是只需要找到一个精确的字符串,我需要找到一个开始总是相同,结束总是相同的子字符串。我已经用类似的东西试过了:

    match = [strIn rangeOfString: @"truni/begin/*/end"];
但这不起作用。所以我需要一种方法来做到这一点。以下是代码的具体部分:

    NSRange match;
    match = [strIn rangeOfString: @"turni/begin/sHjeUUej/end"];
    NSRange range = NSMakeRange(match.location, match.length);
    NSString *strOut = [strIN substringWithRange:range];
您会看到字符串“turni/begin/sHjeUUej/end”除了“sHjeUUej”部分外,其他部分都是相同的。希望有人能帮助我


提前感谢。

将正则表达式与以下内容一起使用:

- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask
使用
常规表达式搜索
选项


有关创建正则表达式的信息,请参阅ICU用户指南。

您可以使用前缀/后缀

if ([strIn hasPrefix:@"truni/begin/"] && [strIn hasSuffix:@"end"]) {
   //match

如果确保字符串始终以
turni/begin/
开头,以
/end
结尾,则可以使用更简单的解决方案

您可以使用:

NSString *strOut = [[strIn stringByReplacingOccurrencesOfString:@"turni/begin/" withString:@""] stringByReplacingOccurrencesOfString:@"/end" withString:@""];

这样,您就可以用一行代码和更少的比较来检索其他两行代码之间的字符串。

我是Objective C的新手,您能给我更详细的信息吗?那太好了!这样我就不能使用它了,它唯一的工作方式是这样的:match=[inputsourcecode hasPrefix:@“truni/begin/”;但这不起作用。请查看
NSRegularExpression
NSRegularExpression
,可能与上面提到的一样?