PHP正則匹配html標籤

2021-10-06 08:33:51 字數 941 閱讀 3556

php正則匹配html標籤

一、前言

1、匹配字串時用:.*? 或 [^\<]+\ 或 [^\<]+

2、preg_match匹配結果為1個,preg_match_all匹配結果為多個

3、如果有標籤結束,則要加符號\,例如<\/div>,如果只需要匹配標籤裡的屬性,就不需要匹配標籤的結束符號<\/標籤名》

4、preg_match_all匹配多個時,每乙個()裡對應乙個結果陣列,預設匹配返回所有內容,preg_match_all返回的陣列數量 = 1 + ()的個數

二、小例子

1、需求:獲取下面字串中eat的內容

2、實現

//獲取下面字串中eat的值

$pattern = '/eat=([^;]+)/'; //從eat= 開始匹配 匹配到非;(^;)結束(即匹配到第乙個分號結束)

preg_match_all($pattern, $string, $result);

var_export($result);die;

3、列印

array (

0 =>

array (

),1 =>

array (

),)

4、匹配語句解析

從eat= 開始匹配 匹配到非;^;)結束(即匹配到第乙個分號結束)

三、**

<?php

class ablog extends base

public function searchcontent($html)

public function searchtitle($html)

public function gethtml()

}

PHP 正則匹配a標籤

php匹配固定class鏈結的a標籤 使用修飾詞大寫的u轉換為非貪婪模式 要不然會從文中的第乙個a標籤的開頭 匹配到最後乙個a標籤的結尾 c u 還可以直接使用非貪婪的正則.c 這個a標籤不要匹配 asdad str aaa bbbccc c u preg match all c,str,match...

正則例項 回溯匹配html標籤

首先構造乙個html文字 let str 然後去除首位的 let str let pat let res str.match pat 1 console.log res 眾所周知,匹配,不能 let pat let res str.match pat 1 let pat1 hh 1 6 hh 1 c...

PHP正則匹配HTML中指定標籤之間內容的寫法

假設網頁內容如下 我要匹配的是每乙個之間的內容 當然tr裡面有很多內容,這裡沒有列出來 暫時不考慮tr會巢狀的問題。首先想到的正則是這樣寫的 preg match all i string,matches echo print r matches echo 但執行不了,經網上搜尋資料後改成如下寫法後...