作者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
1F:推 gpmm:虽然都可以讨论,不过有 Regexp 专板喔~ XD 04/18 12:10
2F:→ zi:试试看U这个modifier 用ungreedy的抓法 04/18 20:48