有効なURLを処理するために必要なテキストがたくさんあります。大きなテキスト/ HTMLファイルからURLを抽出する
入力がぼんやりとHTMLになっています。そのほとんどはhtmlです。しかし、実際に HTMLが有効ではありません。
私はregexで問題を起こそうとしています。
あなたが言う前に(あるいは悲鳴 - 私は他のHTML +正規表現の質問を読んだ)「はパーサを使用する」、あなたが考慮する必要がある一つのことがあります:
私が働いているファイルがあるが約5 GBのサイズ
私はそれを処理するパーサーは何もなく、または何日もかかることはありません。さらに、テキストコンテンツが,htmlであるが、必ずしも有効htmlであるということは、非常に寛容なパーサーが必要であることを意味する。最後に、すべてのリンクが必ずしも<a>
タグにあるとは限りません(一部は平文でもよい)。
私は本当に文書の構造には気をつけませんが、リンクを抽出する優れた選択肢がありますか?
今私は正規表現使用しています:(はgrep -Eに)
\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))
を
それでもそれを、私はそれが約3時間のために実行させることの後にあきらめました。
Regexエンジンのパフォーマンスには大きな違いがありますか?私はMacOSのコマンドラインgrep
を使用しています。パフォーマンスが向上する他の互換性のある実装がある場合は、オプションになる可能性があります。
言語/プラットフォームについてはあまり気にしませんが、MacOS /コマンドラインはうまくいくはずです。
スキームなしで物事をキャッチする必要がありますか? (いいえ「http://」はありません) – icktoofay
@icktoofay - それはいいと思います。 –