php正则替换

c254009604 2011-09-08 11:16:00
把这段

test1<test1@qq.com>;test2 <test2@qq.com>;test3<test3@qq.com>;

替换成


"test1" <test1@qq.com>;"test2" <test2@qq.com>;"test3" <test3@qq.com>;


请注意其中的空格,谢谢大家!
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
c254009604 2011-09-08
  • 打赏
  • 举报
回复
这个还要补充下,并不一定是这个test*之类的 或者其他名称 或 汉字 要都可以匹配
kyzy_yy_pm 2011-09-08
  • 打赏
  • 举报
回复
$s = 'test1<test1@qq.com>;test2 <test2@qq.com>;test3<test3@qq.com>;';

$s = preg_replace('/(test\d*)(<| <)/', '"$1" <', $s);

echo $s;
xuzuning 2011-09-08
  • 打赏
  • 举报
回复
$s = "test1<test1@qq.com>;test2 <test2@qq.com>;test3<test3@qq.com>;";

echo preg_replace('/(test\d+)\s*&/', '"$1" &', $s);
一起混吧 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 c254009604 的回复:]

不好意思,我的错,还有个需求,就是姓名中间会有空格
比如
PHP code
Mr Chen&lt;test5@test.com&gt;;姓名 PHP&lt;test10@test.com&gt;;姓 测 试&lt;test2@test.com&gt;
[/Quote]"Mr Chen" <test5@test.com>;"姓名 PHP" <test10@test.com>;"姓 测 试" <test2@test.com>

没有问题啊
chenzrm 2011-09-08
  • 打赏
  • 举报
回复
我那个允许有空格。
c254009604 2011-09-08
  • 打赏
  • 举报
回复
不好意思,我的错,还有个需求,就是姓名中间会有空格
比如
Mr Chen<test5@test.com>;姓名 PHP<test10@test.com>;姓 测 试<test2@test.com>

一起混吧 2011-09-08
  • 打赏
  • 举报
回复
echo preg_replace('/([^;]+)\s*</U', '"$1" <', $s);
chenzrm 2011-09-08
  • 打赏
  • 举报
回复
<?php
$str = <<<CODE
test1<test1@qq.com>;test2 <test2@qq.com>;test3<test3@qq.com>;
CODE;

$pattern = '/(.*?)\s*<\1@qq.com>;\s*/is';
$replacement = '"\1" <\1@qq.com>;';
$result = preg_replace($pattern,$replacement , $str);

echo $result;
?>
c254009604 2011-09-08
  • 打赏
  • 举报
回复
姓名6<test5@test.com>;姓名11<test10@test.com>;姓名3<test2@test.com>

怎么匹配替换成那个格式
一起混吧 2011-09-08
  • 打赏
  • 举报
回复
echo preg_replace('/(\w+)\s*</', '"$1" <', $s);

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧