原始字符串为:
$str='[a]
a=1
b=?,/^[0-9]$/
c=3
[b]
time1=2009-11-30 17:30:00
time2=2009-12-01 17:40:00
[c]
d=?,/^[1-5]$/
e=?,/^[0,1]$/
[d]
type=1';
要求用preg_match_all('正则……',$str,$matches)来写,使得匹配结果数据为:
$matches[0][0]='[a]
a=1
b=?,/^[0-9]$/
c=3'
$matches[0][1]='[b]
time1=2009-11-30 17:30:00
time2=2009-12-01 17:40:00'
$matches[0][2]='[c]
d=?,/^[1-5]$/
e=?,/^[0,1]$/'
……
以此类推,请问preg_match_all里的正则要怎么写,谢谢了!
对了,忘说了,每一行里的[] 里的字符并不是a、b、c、d这样有规则的排序,可能是一个字符串什么的
用 preg_split 就简单多了
$str = '[a]
a=1
b=?,/^[0-9]$/
c=3
[b]
time1=2009-11-30 17:30:00
time2=2009-12-01 17:40:00
[c]
d=?,/^[1-5]$/
e=?,/^[0,1]$/
[d]
type=1';
$p = '/^\[\w+\].+/ms';
$r = preg_split('/(\[\w+\])/', $str, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
print_r($r);
ini文件?
对,ini文件
如果是ini文件,那么应按规则写
PHP code:
[a]
a=1
b="?,/^[0-9]$/"
c=3
[b]
time1=2009-11-30 17:30:00