私はクロールしたウェブページから特定のURLを抽出する正規表現をjavaに持っています。これらのURLは基本的にjavascriptとスタイルシートで、ページに組み込まれます。私は、正規表現を使用して文書を解析するのではなく、これらを抽出することを選択しました。これは、文書を解析することで、私にとって付加価値がないためです。スピードアップJava正規表現
有効なURL(絶対または相対)を取得するには、私は、次の正規表現を使用します。
([^"',\(]*)/endofurl
それは/ endofurl 『「この例では、」(と、URLの』末端との間に何かを取り出します。
問題は、それはおそらく([^ "」、(] *)の部分)の(つまり、高速ではないということです がすることによってこれをスピードアップする方法はあります例えば、 '/ endofurl'部分を探すようにするまず開始文字の1つに達するまで元に戻りますか?
サンプルURLをいくつか表示できますか? –
URLを抽出するための基本正規表現よりも複雑なメカニズムがあるようですので、各ステップごとにregexを使ってメカニズム/ステップをコードする必要があります。すなわち、ステップ1は最初にendofurlを探し、次にstep 2などを探します。 – abstractx1
私は正規表現だけが間違ったツールだと思います。関心のあるタグ/ノードを取得するには、XML/HTMLパーサーを使用する必要があります。その後、URLを検証するために、孤立したタグごとに正規表現を使用することができます。 –