簡體   English   中英

PHP preg_match在兩個HTML標記之間獲取文本

[英]PHP preg_match to grab text in between two HTML tags

我正在嘗試使用preg_match來抓取兩個HTML標記之間的文本。

這是我的代碼的簡化版本:

 $sPattern = "/<li class=\"sample\">(.*?)<\/li>/s";
 $sText = "blah blah blah <li class=\"sample\">hello world!</li> blah blah blah";
 preg_match($sPattern,$sText,$aMatch);
 echo '<pre>'.print_r($aMatch).'</pre>';

但是,當我運行此代碼時,我得到了完整的HTML字符串:

<li class=\"sample\">hello world!</li>

有誰知道我需要對正則表達式進行哪些更改?

注意:我知道其他方法可以解析HTML頁面中的數據。 由於各種原因,不能選擇DOMDocument和DOMXPath -我堅持使用RegEx。

這應該可以按照您想要的方式工作:

$sPattern = "/<li class=\"sample\">(.*?)<\/li>/s";
$sText = "blah blah blah <li class=\"sample\">hello world!</li> blah blah blah";
preg_match($sPattern,$sText,$aMatch);
echo '<pre>'.$aMatch[1].'</pre>';

您需要訪問捕獲組輸出。

var_dump( $aMatch[1]);

這是一個演示正則表達式工作正常的演示 ,您只是錯誤地訪問了結果數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM