こんにちは私はリンクを抽出したい
と思います<a href="/portal/clients/show/entityId/2121" >
、そして私は私に/ portal / projects / show / entityId / 2121を与える正規表現が欲しいです最後の2121の番号は他のリンクで何か考えが異なりますか?
php - Preg_match_all
こんにちは私はリンクを抽出したい
と思います<a href="/portal/clients/show/entityId/2121" >
、そして私は私に/ portal / projects / show / entityId / 2121を与える正規表現が欲しいです最後の2121の番号は他のリンクで何か考えが異なりますか?
こんにちは私はリンクを抽出したい
と思います<a href="/portal/clients/show/entityId/2121" >
、そして私は私に/ portal / projects / show / entityId / 2121を与える正規表現が欲しいです最後の2121の番号は他のリンクで何か考えが異なりますか?
Java休止状態でリストタイプを変換する方法
Javaアプリケーションでは、休止状態の基準クエリを使用します。次に例を示します。
Criteria criteria = session.createCriteria(Any.class);
...
List<?> list = criteria.list();
結果リストにはAny型のオブジェクトのみが含まれていることは明らかですが、上記で定義された型のリストを取得できるかどうかはわかりません。
この場合、foreachを使用する場合は、タイプをオブジェクトからタイプAnyに変換する必要があります。
for(Object object : list) {
...
((Any)object).
...
}
または、配列を取得する必要がある場合は、次のようなことを行う必要があります。
list.toArray(new Any[]{});
あなたはなにか考えはありますか?
6 に答える
// Create DOM from string
$html = str_get_html($links);
//or
$html = file_get_html('www.example.com');
foreach($html->find('a') as $link) {
echo $link->href . '<br />';
}
xml/html の処理に正規表現を使用しないでください。これは、組み込みの dom パーサーを使用して非常に簡単に実行できます。
$doc = new DOMDocument();
$doc->loadHTML($htmlAsString);
$xpath = new DOMXPath($doc);
$nodeList = $xpath->query('//a/@href');
for ($i = 0; $i < $nodeList->length; $i++) {
# Xpath query for attributes gives a NodeList containing DOMAttr objects.
# http://php.net/manual/en/class.domattr.php
echo $nodeList->item($i)->value . "<br/>\n";
}
これが私の解決策です:
<?php
// get links
$website = file_get_contents("http://www.example.com"); // download contents of www.example.com
preg_match_all("<a href=\x22(.+?)\x22>", $website, $matches); // save all links \x22 = "
// delete redundant parts
$matches = str_replace("a href=", "", $matches); // remove a href=
$matches = str_replace("\"", "", $matches); // remove "
// output all matches
print_r($matches[1]);
?>
xml ベースのパーサーの使用は避けることをお勧めします。これは、ドキュメント/Web サイトが適切に形成されているかどうかを常に把握できるとは限らないためです。
よろしくお願いします
リンクを解析するための正規表現は次のようなものです。
'/<a\s+(?:[^"'>]+|"[^"]*"|'[^']*')*href=("[^"]+"|'[^']+'|[^<>\s]+)/i'
それがどれほど恐ろしいことかを考えると、少なくともリンクを取得するためにSimple HTML Domを使用することをお勧めします。次に、リンクの href で非常に基本的な正規表現を使用してリンクをチェックできます。
HTMLを「解析」するとき、私は主に正規表現ではなくhttp://code.google.com/p/phpquery/のPHPQueryに依存しています。
HTMLからのリンクの解析は、amHTMLパーサーを使用して実行できます。
すべてのリンクが揃ったら、最後のスラッシュのインデックスを取得するだけで、番号がわかります。正規表現は必要ありません。