作者ckmarkhsu (深藍站長)
看板RegExp
標題[請益] 請問關於 RegExp 的問題
時間Fri Apr 18 11:42:25 2008
※ [本文轉錄自 PHP 看板]
作者: ckmarkhsu (深藍站長) 看板: PHP
標題: [請益] 請問關於 RegExp 的問題
時間: Fri Apr 18 11:42:06 2008
使用 PHP 的 preg_match_all 函數
被截取字串:
_________________________________________
<if condition="$vbul_letin">
conditionA1
<else>
conditionA2
</if>
test
<if condition="$test2">
<b>conditionB1</b>
<else>
<i>condtionB2</i>
</if>
_________________________________________
RegExp : /<if condition="\$[a-zA-Z0-9_]+">(.|\n|\r)+(<else>|<\/if>)/
我是希望能將 <if 一直到 </if> 涵蓋的內文全部抓出來
(<else> 為非必要標籤 可有可無)
而我 RegExp 的寫法為, 判斷
/<if condition="$[數字或英文或底限]+">(任意字元或換行)+(<else>或</if>)/
但這樣的話,他會從一開頭的 if 一直抓到結尾的 /if
也就是抓了兩組的 if 組塊
請問該如何寫才能夠一次只抓第一組呢:)
感謝前輩指點
ckmarkhsu
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.248.23
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.248.23
推 LPH66:在(.*)+後面加上?即可 04/18 18:06
→ LPH66:呃我說的是任意字元或換行那裡 04/18 18:06
推 ta0306556:妳用那個函式,他都抓出來,但是會存在不同的陣列位置 04/18 23:29
→ ta0306556:所以妳要用再拿出來用就好了不是嗎? 04/18 23:30