关于正则表达式的一个疑问

phpisshow 2011-09-16 06:21:04

baidu
,
google

第一种回车换行后加逗号或者其他任意字符



baidu,google


第二种,两个挨着间加一个逗号或者其他任意字符



匹配规则


$message = preg_replace("/\(.*)\[\/url\]/i","<a href='\\1'>\\2</a>",$message);


第一种能正确替换成HTML A标签格式, 但第二种就替换成第一个[url]和最后一个结束间内容。结果为

<a href='http://www.baidu.com]baidu,[url=http://www.google.com'>google</a>


请教一下怎么回事?谢谢。
...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2011-09-16
  • 打赏
  • 举报
回复
默认是“贪婪模式”

$message = preg_replace("/\[url=(.*)\](.*)\[\/url\]/iU","<a href='\\1'>\\2</a>",$message);
一起混吧 2011-09-16
  • 打赏
  • 举报
回复
$message = preg_replace("/\[url=(.*)\](.*)\[\/url\]/iU","<a href='\\1'>\\2</a>",$message);
amani11 2011-09-16
  • 打赏
  • 举报
回复
"/\[url=(.*)\](.*)\[\/url\]/iU" 最后加U修饰

或者 .*?

21,887

社区成员

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

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