php正則匹配標簽
1. php正則表達式如何匹配HTML標簽
這個問題類似求括弧配對. 用正則方法可能不行. 可以這樣:
1) 字元串分析法求解: 建立一個計數器, 同時從前向後掃描 html 內容, 從要選擇的段落開頭開始, 每次讀到一個 <td ..> 標簽, 計數器加一, 每次讀到一個 </td> 標簽, 計數器減一, 如果 沒有意外, 當計數器減為零時, 就找到了配對的 td 結束標簽.
2) 用 XmlDocument 讀取整段 html, 然後利用 DOM 的一系列方法選擇出你要的內容.
2. PHP正則表達式匹配標簽之後的內容
$s1='[img]h和諧ttp://127.0.0.1/55.jpg
[png]htt和諧p://127.0.0.1/55.png
[gif]ht和諧tp://127.0.0.1/55.gif
[style]7
[height]698
[top]390
[bg]#00679a';
if(preg_match_all("/[[^[]]+]([^ ]+)/",$s1,$m)){
for($i=0;$i<count($m[1]);$i++){
echo$m[1][$i]." ";
}
}
3. php正則表達式怎麼匹配標簽裡面的值!
假設字元串為:$str
$pattern="/content=\"([\w\W]*?)\"/i";
preg_match_all($pattern,$str,$matches);
print_r($matches[1]);
4. PHP 正則匹配A標簽獲得連接和文字
<a\b[^>]*\bhref=([^\s>]+)[^>]*>[\s\S]*?([^<>]*)</a>
解釋:
<a\b #匹配a標簽的開始
[^>]* #匹配a標簽href屬性前的其他屬性
\bhref=([^\s>]+) #匹配href屬性,並將匹配到的內容捕獲到分組1當中
[^>]*> #匹配a標簽的結束
[\s\S]*? #匹配a標簽文本前的img標簽
([^<>]*) #匹配a標簽文本並捕獲到分組2當中
</a> #匹配a標簽的關閉
分組1和分組2即為所需內容
簡化版:
<a\s*href=([^>]+)><img[^>]+>([^>]+)</a>
實際上簡化版可能效率更高……因為嚴格按照原文本格式來匹配。
不過如果標簽形式有一點變化就可能導致匹配失敗,所以這里寫了兩個版本。。
5. php如何用正則匹配如下html標簽
就是<div class="sk">.*?</div>吧,注意引號的使用即可。星號後面的問號可以防止貪婪。
6. php正則匹配所有a標簽,並刪除
試試這個
preg_replace('/(<a.*?>[sS]*?</a>)/','',$str);
7. php 正則表達是匹配a標簽
可以,但是要用非貪婪模式:
'/<a.+?</a>/is';
'/<a[sS]+?</a>/i';
[sS] 表示任意字元(. 是除換行以外的任意字元)
+? 或 *? 是非貪婪模式的意思
兩個正則是等效的
8. 如何用PHP 正則匹配出含有HTML標簽的字元串中的英文單詞
通過仔細閱讀問題描述,樣本採用 html格式編寫,其內容為中英文互譯,如問題所要求的:「正文中的,英文單詞都匹配出來」。
提供一下思路:
建議可以將問題簡化一下,即只取正文中的英文部分。
通過觀察如上提供的樣本中,大部分的英文部分都以標簽<div class="set_en">...</div>(其中有一個 div標簽沒有配對) ,則步驟如下:
1、先編寫正則取出標簽中的內容:
9. PHP正則表達式匹配html標簽屬性值
<?php
$str='<aid="btlist10"st="1"ditem="true"class="itemmulti-lineswith-avatar"ftios="1"ck="TlRZNFlUSTRNakk9"
ft="1"data="我想匹配的屬性值"ix="10"analytical="false"s1="我想匹配的屬性值2"
jxd1="0781C99068C8FEBF"jxd2=""onclick="openmenu($(this))">';
$fun=function($str,$key){
$str=preg_replace("/[sS]*s".$key."[="']+([^"']*)["'][sS]*/","$1",$str);
return$str;
};
$data=$fun($str,"data");
echo$data;
echo" ";
$s1=$fun($str,"s1");
echo$s1;
echo" ";
$other=$fun($str,"ck");
echo$other;
echo" ";
$other=$fun($str,"onclick");
echo$other;
?>