求一个PHP替换正则,把字符串换成想要的html代码

旋转360 发布于 2014/07/09 19:00
阅读 967
收藏 2
PHP
$str = "北京XX分公司


电话:020-8888 8888

地址:北京朝阳区XXX";

$str2 = "北京XX分公司
电话:020-8888 8888
地址:北京朝阳区XXX";

$str3 = "北京XX分公司
电话:020-8888 8888


地址:北京朝阳区XXX";
preg_replace("/正则/","下面我需要的html标签",$str);
echo $str;



我要替换成这样的,注意上面的字符串是有换行(还有两行的,反正那个中间的行数不定,所以我给了$str,$str2,$str3)的;


<h2>北京XX分公司</h2>
<p>电话:020-8888 8888</p>
<p>
    <div class="CompanyAddT">地址:</div>
    <div class="CompanyAddC">北京朝阳区XXX</div>
</p>
正则不太行,求大虾赐教,,,


加载中
0
freesnow
freesnow

(.+)\s*(.+)\s*([^:]+:)(.+)

替换成

<h2>\1</h2>

<p>\2</p>
<p>
    <span></span><div class="CompanyAddT">\3</div>
    <div class="CompanyAddC">\4</div>

</p>

旋转360
旋转360
谢谢你,我弄好了,也是用这个工具给弄出来的!
freesnow
freesnow
回复 @寂寞的煙客 : 你是不是用s修饰符了?贴贴你的代码吧,我看看你怎么用的正则
旋转360
旋转360
回复 @寂寞的煙客 : 最好
旋转360
旋转360
貌似不行,不过最后是以“电话”、“地址”分割
0
小松鼠
表示木弄明白你想怎么样
旋转360
旋转360
你看楼上的就明白了,他截图了
0
大灰狼wow
大灰狼wow
是正则匹配,然后用sprintf格式化输出, 匹配换行
0
旋转360
旋转360

引用来自“freesnow”的评论

(.+)\s*(.+)\s*([^:]+:)(.+)

替换成

<h2>\1</h2>

<p>\2</p>
<p>
    <span></span><div class="CompanyAddT">\3</div>
    <div class="CompanyAddC">\4</div>

</p>

$result = preg_replace('/(.+)\s*电话:(.+)\s*地址:(.+)/m', "<h2>\1</h2>\r\n<p>电话:\2</p>\r\n<p>\r\n<span></span><div class=\"CompanyAddT\">地址:</div>\r\n<div class=\"CompanyAddC\">\3</div>\r\n</p>", $subject);



返回顶部
顶部