簡體   English   中英

嵌套html標簽的preg_match

[英]preg_match for nested html tags

我想通過php preg_match_all()捕獲所有“ dev”標簽及其各自的內容,但無法獲取嵌套的標簽。

數據:

<dev>aaa</dev> <dev>bbb</dev> <dev> ccc <dev>ddd</dev> </dev>

到目前為止我的表情:

|<dev>(.*)</dev>|Uis

謝謝您的幫助; b。

不要使用正則表達式進行解析。 使用真正的解析器,例如DOMDocumentSimpleXML

$xml = simplexml_load_string('<root>'.$str.'</root>');

您需要具有遞歸匹配模式:

/<dev>(.*|(?R))<\/dev>/i

那只會吸收任何嵌套的元素,因此,如果您想對其進行解析,則必須在$ matches [1]上再次運行該函數。

*是貪婪的運算符,它消耗盡可能多的字符。 您應該使用*? 非貪婪版本,而是查找可能的最小匹配項。 也許正則表達式不是執行此操作的最佳工具。

暫無
暫無

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

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