正則匹配提取多個重複的html標籤內容

2021-10-03 20:25:10 字數 884 閱讀 2839

遇到這樣的場景:

有乙個html標籤如下:

$str = 'sddf

aaahbaskdf

vvvasgd

ccchrgew4r4';

我需要提取標籤中

中間的內容 即aaa,vvv和ccc

如果使用preg_match直接匹配,**如下:

$preg = '/

(.*)<\/?br>/';

然後匹配:

$res = preg_match($preg, $str, $matches);

if ($res)

然後列印出來結果是:

array(2)
匹配到了第乙個

和最後乙個

之間的所有內容

如果採用不貪婪的方式即將pattern寫為以下的形式:

$preg = '/

(.*?)<\/?br>/';

或者

$preg = '/

(.*)<\/?br>/u';

就會只匹配到第乙個:

array(2)
我想到可以使用 explode函式 與 正則 一起使用的方法

$str = 'sddf

aaahbaskdf

vvvasgd

ccchrgew4r4';

$arr = explode('

', $str);

foreach ($arr as $item)

}

列印結果如下:

string(3) "aaa"

string(3) "vvv"

string(3) "ccc"

如果後續有優化的正則,我會修改本文.

PHP正則匹配html標籤

php正則匹配html標籤 一 前言 1 匹配字串時用 或 或 2 preg match匹配結果為1個,preg match all匹配結果為多個 3 如果有標籤結束,則要加符號 例如 div 如果只需要匹配標籤裡的屬性,就不需要匹配標籤的結束符號 標籤名 4 preg match all匹配多個時...

正則 多個字元匹配

正規表示式 二 匹配多個字元 元字元 量詞符號 import re 1 匹配0個或者1個a print re.findall a?b abbzab abb aab 2 匹配1個或者多個a print re.findall a b b ab aaaaaab abb 3 匹配0個或者多個a print ...

正則匹配多個字元

匹配多個字元的相關格式 字元功能 匹配前乙個字元出現0次或者無限次,即可有可無 匹配前乙個字元出現1次或者無限次,即至少有1次 匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有 匹配前乙個字元出現m次 匹配前乙個字元出現從m到n次 需求 匹配出,乙個字串第乙個字母為大小字元,後面都是小寫字母並...