WebページのURLを指定すると、特定のクラスの開始<div>
と終了の間にHTMLを取得する必要があります。</div>
ページのhtmlコード全体を文字列として返すことができれば、RegExを使用して、特定の<div>
クラス間のHTML間を抽出し、それを文字列として返すことができると思います。
Objective-CとRegExesを使用してこれをどのように達成できますか?
WebページのURLを指定すると、特定のクラスの開始<div>
と終了の間にHTMLを取得する必要があります。</div>
ページのhtmlコード全体を文字列として返すことができれば、RegExを使用して、特定の<div>
クラス間のHTML間を抽出し、それを文字列として返すことができると思います。
Objective-CとRegExesを使用してこれをどのように達成できますか?
構文解析の部分について、私はあなたのために3つの言葉を持っています:
試さないでください
HTMLの解析CthulhuWya(Jeff自身による)を読んで、この有名なSOの答えを見てください。ライブラリの場合は、HTML::Sanitizerを使用します
一方、ほとんどのプログラムは、解析時にHTMLの全体を予測する必要はなく、予測する必要もありません。実際、そのようにプログラムを設計することは、プログラムを数行のスクリプトから、適切にコーディングしてサポート。プログラマティックソリューションを作成するときは、リソースの支出を常に考慮する必要があります(おっと、非常に頻繁に、私も一般化しすぎています)。さらに、ハード境界は必ずしもHTML指向の制限である必要はありません。それらは、「これらのWebページのセットを操作する」、「これらのWebページからのこのデータを操作する」、「98%のユーザーが98%の時間で作業する」、または「OMG、これを作成する必要がある」のように単純な場合があります。次の1時間で働き、できる限り最善を尽くしてください。」
したがって、icanhazipのようなものを解析している場合は、それを選択できます。多分それが小さければ、それはうまくいくかもしれません。または、静的コンテンツを使用している場合。それはあなたが選ぶためのものです。幸運を!
文字列が正規表現と一致するかどうかを確認できますNSPredicate
このコード_test
は、がメールアドレスであるかどうかを確認します
-(BOOL)CheckInput:(NSString *)_text
{
NSString *Regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", Regex];
return [emailTest evaluateWithObject:_text];
}