更新: 正規表現で行うのは信頼できません。src=".." または href=".." ステートメントは、コメントまたは JavaScript ステートメントの一部にすることができます。信頼できるリンクを取得するには、XPath を使用することをお勧めします。
<?php
$html = file_get_contents('http://stackoverflow.com/questions/14782334/regex-expression-to-find-all-paths-in-a-html-string/14782594#14782594');
$doc = new DOMDocument();
@$doc->loadHTML($html);
$selector = new DOMXPath($doc);
$result = $selector->query('//a/@href | //@src');
foreach($result as $link) {
echo $link->value, PHP_EOL;
}
"
正規表現を使用する場合、href または src 属性の = の間のコンテンツを取得しようとします。正規表現を使用してこのページからリンクを取得する方法の例を次に示します。
<?php
$html = file_get_contents('http://stackoverflow.com/questions/14782334/regex-expression-to-find-all-paths-in-a-html-string');
preg_match_all('/href="(?P<href>.*)"|src="(?P<src>.*)"/U', $html, $m);
<--- note the U to make the
pattern ungreedy
var_dump($m['href']);
var_dump($m['src']);