我试过这段代码
"<h2 class="a-text-normal">.*</h2>"
但它将匹配整个句子而不仅仅是内容。
<h2 class="a-text-normal">The info to be matched</h2>
答案 0 :(得分:1)
您可以使用非贪婪量词和正则表达式。
(?<=<h2 class="a-text-normal">).*?(?=</h2>)
<强> Working demo 强>
代码
NSString *orgStr = @"<h2 class=\"a-text-normal\">The info to be matched</h2>";
NSString *URLRegExPattern = @"(?<=<h2 class=\"a-text-normal\">).*?(?=<\/h2>)";
NSError *regExErr;
NSRegularExpression *URLRegEx = [NSRegularExpression regularExpressionWithPattern:URLRegExPattern
options:0
error:®ExErr];
NSString *URLString = nil;
NSRange range = [URLRegEx rangeOfFirstMatchInString:orgStr
options:0
range:NSMakeRange(0, orgStr.length)];
if (!NSEqualRanges(range, NSMakeRange(NSNotFound, 0))) {
URLString = [orgStr substringWithRange:rangeOfFirstMatch];
}
NSLog(@"URL: %@", URLString);
答案 1 :(得分:0)
一个简单的( for generic languages )正则表达式将是:
[^>]+(?=<)
希望它有所帮助。
修改强>
如果您的语言允许您在正则表达式的开头使用>\K
或(?<=>)
,则会在搜索时提高速度。