使用正则表达式查找 NSString 的子字符串

Finding substring of NSString with RegularExpressions

我正在尝试使用 NSRegularExpression 从 NSString 获取子字符串。 我不想要匹配的数量或者替换字符串,我想要匹配正则表达式

的字符串
NSString *string = <a>www.apple.com</a>
NSError *error;
[NSRegularExpression regularExpressionWithPattern:@"(\b(https?|ftp|file)://)?[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *substring;

我要找的是:

substring = www.apple.com;

我尽量少用 NSRange/NSMakeRange。谁能帮帮我?

NSRange *range = [string rangeOfString:@"(\b(https?|ftp|file)://)?[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]" options:NSRegularExpressionSearch];
if(range.location!=NSNotFound) {
NSString *neededSubString = [String SubStringWithRange:range];
}

在这段代码中我们首先获取匹配正则表达式的字符串的范围。然后我们从该范围中获取子字符串