PHP 正则 截取两个符号之间的内容

作者: 坎肩儿 分类: php代码 发布时间: 2010-05-08 09:37

最近玩了个批量生产,从下面的内容里面:

【姓名1】中国书法家协会会员。
[作品类别]书法
[代表作品]
[通讯地址]画家地址
[邮政编码]150020
[联系电话]123456
【姓名2】油画艺术研究会会员。
[作品类别]油画
[代表作品]《早春》、《栋梁》
[通讯地址]画家地址
[邮政编码]164133
[联系电话]123456
… …

找出姓名、地址、邮编,只要这三项,有很多条那样的信息,所以就想到用程序批量生产,先将上面的内容格式成:

【姓名1】中国书法家协会会员。[作品类别]书法[代表作品]!画家地址——{150020}123456【姓名2】油画艺术研究会会员。[作品类别]油画[代表作品]《早春》、《栋梁》!画家地址——{164133}123456

用下面的程序批量造:

<?php
$str = “”;
preg_match_all(“/(【)(.*?)(】)/”, $str, $match); //姓名
preg_match_all(“/({)(.*?)(})/”, $str, $match2); //邮编
preg_match_all(“/(!)(.*?)(——)/”, $str, $match3); //地址
foreach($match[0] as $key=>$value) {
 echo $match3[0][$key];
 echo “<br />”;
 echo “<span class=’name’>”.$value.”(收)</span>”;
}
?>

 程序的关键:分隔符,姓名的分隔符“【】”、地址的分隔符“!——”、邮编的分隔符“{}”,在记事本里面批量替换即可。

这里用到的正则表达式跟前面写的删除编辑器里面的文件所用到的正则类似,http://www.pksafe.cn/blog/334.html