作者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
1F:推 LPH66:在(.*)+後面加上?即可 04/18 18:06
2F:→ LPH66:呃我说的是任意字元或换行那里 04/18 18:06
3F:推 ta0306556:你用那个函式,他都抓出来,但是会存在不同的阵列位置 04/18 23:29
4F:→ ta0306556:所以你要用再拿出来用就好了不是吗? 04/18 23:30