私はNSRegularExpressionsを使用してHTMLページを解析しようとしている。.. ページでは、このHTMLコードの繰り返しです:解析HTML NSRegularExpression
<div class="fact" id="fact66">STRING THAT I WANT</div> <div class="vote">
<a href="index.php?p=detail_fact&fact=106">#106</a>
<span id="p106">246080/8.59 </span>
<span id="f106" class="vote2">
<a href="#" onclick="xajax_voter(106,3); return false;">(+++)</a>
<a href="#" onclick="xajax_voter(106,2); return false;">(++)</a>
<a href="#" onclick="xajax_voter(106,1); return false;">(+)</a>
<a href="#" onclick="xajax_berk(106); return false;">(-)</a></span>
<span id="ve106"></span>
</div>
ので、i'ldはdiv要素の間の文字列を取得したいです
<div class="fact" id="fact66">STRING THAT I WANT</div>
は、だから、私はCで、今、この
<div class="fact" id="fact[0-9].*\">(.*)</div>
のように見える正規表現を作りましたode、私はこれを使用して実装します:
NSString *htmlString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.myurl.com"] encoding:NSASCIIStringEncoding error:nil];
NSRegularExpression* myRegex = [[NSRegularExpression alloc] initWithPattern:@"<div class=\"fact\" id=\"fact[0-9].*\">(.*)</div>\n" options:0 error:nil];
[myRegex enumerateMatchesInString:htmlString options:0 range:NSMakeRange(0, [htmlString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop) {
NSRange range = [match rangeAtIndex:1];
NSString *string =[htmlString substringWithRange:range];
NSLog(string);
}];
しかし、それは何も返しません...私は正規表現をJavaとPHPでテストしました。
おかげ
ちょっとしたことhttp://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Joe
必須、[正規表現を使ってHTMLを解析する:どうしてですか? "](http://stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not) –