使用RegularExpressions查找NSString的子字符串

时间:2015-01-14 18:54:25

标签: objective-c regex nsregularexpression nsstringencoding

我正在尝试使用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。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

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];
}

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