来自此代码的preg_match

时间:2013-01-11 00:38:16

标签: php preg-match

如果有人可以帮助我使用我的preg_match,我想要这个代码中的标题

    <dt class="gallery-icon">
    <a href="?attachment_id=31" title="title">
        <img width="150" height="150" src="librosdefirmas-bodas-1-150x150.jpg" class="attachment-thumbnail" alt="Caption">
    </a>
</dt>

我有这个:

preg_match_all('/<dt class="gallery-icon">\s*<a href="(.*)" title="(.*)".*>/is', $page_columns[0], $titles);

但谁能帮助我呢?

2 个答案:

答案 0 :(得分:3)

不要使用正则表达式解析HTML。 Read

$html = '
 <dt class="gallery-icon">
    <a href="?attachment_id=31" title="title">
        <img width="150" height="150" src="librosdefirmas-bodas-1-150x150.jpg" class="attachment-thumbnail" alt="Caption">
    </a>
</dt>
';
$dom_document = new DOMDocument();
$dom_document->loadHTML($html);
$dom_xpath = new DOMXpath($dom_document);
$elements = $dom_xpath->query("//dt/a");
print_r( $elements->item(0)->getAttribute('title') );

答案 1 :(得分:1)

“。*”是一个贪婪的匹配,即如果有一个它可以匹配的话,它会在第一个引号之外徘徊。使用[^“] *代替。*来匹配除引号之外的所有字符。