亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么只匹配<b></b>里的字符串,而不會匹配<b></b>?

$p = "|<[^>]+>(.*?)</[^>]+>|i";
$str = "<b>example: </b><div align=left>this is a test</div>";
preg_match_all($p, $str, $matches);
print_r($matches);

正在回答

4 回答

http://img1.sycdn.imooc.com//595b08c80001ccf205680433.jpg其實,實際上瀏覽器中沒顯示html標簽,但是實際上$matches[0]中確實是匹配到了標簽的,并且存了數組中,是指html標簽被瀏覽器解析掉了,所以沒有顯示。

4 回復 有任何疑惑可以回復我~

http://img1.sycdn.imooc.com//595b040e0001002407470479.jpg看打印出來的數據可以知道,其實無論是選擇$matches[0]還是$matches[1]都不會得到標簽<li></li>,實踐是檢驗真理的唯一標準,希望可以幫到你,兄弟

1 回復 有任何疑惑可以回復我~

$p = "/<b>(.*?)<\/b>/i"; 拿我寫的這個舉例子 ? 你獲取到的有b標簽的會被存放在$matches[0]中,因為$matches[0]種存放的是匹配完整表達式的結果,$matches[1]存放的只是(.*?)匹配的結果,沒有包含前邊后邊的標簽

2 回復 有任何疑惑可以回復我~

$p = "/<b>(.*?)<\/b>/i";

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
PHP進階篇
  • 參與學習       181921    人
  • 解答問題       2668    個

輕松學習PHP中級課程,進行全面了解,用PHP快速開發網站程序

進入課程

為什么只匹配<b></b>里的字符串,而不會匹配<b></b>?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號