簡體   English   中英

Preg_match_all模式除外

[英]Preg_match_all patterns except

我正在嘗試從文本字段中獲取所有出現的特定標簽,並且僅檢索其一部分內容

<h4>
TEXT TO RETRIEVE HERE
<br>
EVERYTHING ELSE
</h4>

我的問題是,並非在每種情況下都不會顯示BR標簽,所以當它出現時,我要排除它及其后面的所有內容

<br>
EVERYTHING ELSE

我嘗試了以下preg_match_all,但沒有運氣:

preg_match_all('/<h4>(.*?)<br>.*<\/h4>/ims', $text, $match)

嘗試:

<h4>.*?(?=<br>|$)

啟用換行選項時,“點匹配換行符”和^ $不匹配

如果需要確保結束標記位於末尾,則可以嘗試:

<h4>.*?(?=(?:<br>.*</h4>)|(?:</h4>))

我想你需要這樣的東西

<h4>((?:(?!<br>).)*)(?=<br>|<\/h4>)

它捕獲<h4>標記之后的值,該值不是<br>零次或多次。 並且必須在其后跟隨<br>標記或</h4>標記。

DEMO

暫無
暫無

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

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