关于正则表达式的问题("(\{)(\r\n)*(.*)(\})"),精通者请进

lpt 2003-03-13 09:02:31
http://expert.csdn.net/Expert/topic/1527/1527641.xml?temp=.6129419
...全文
45 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpt 2003-03-17
  • 打赏
  • 举报
回复
没有人回答!

$searcharray = array("/([^\x80]*)asdf([^\x81]*)/i");
$replacearray = array("\\1凌萍\\2");

怎样替换全部
lpt 2003-03-15
  • 打赏
  • 举报
回复
这样也不行
$patterns = array(
"/(\[)(\/code)(])(\r\n)*(.*)def(.*)(\[code\])/"
);
$replace = array(
"\\6opq\\7"
);
lpt 2003-03-15
  • 打赏
  • 举报
回复
不会吧!

字符串内容:
abc def ghi jkl mno
abc def ghi jkl mno

abc def ghi jkl mno
abc def ghi jkl mno


用正规表达式怎样把
...
之外内容中的def替换成opq,jkl替换成mno?
替换的结果如下:
abc opq ghi mno mno
abc def ghi jkl mno

abc opq ghi mno mno
abc def ghi jkl mno


我写的这个只能替换里面的分隔符里面,不能替换外面的内容。
$patterns = array(
"/(\[)(code)(])(\r\n)*(.*)def(.*)(\[\/code\])/",
"/(\[)(code)(])(\r\n)*(.*)jkl(.*)(\[\/code\])/"
);
$replace = array(
"\\5opg\\6",
"\\5mno\\6"
);

xuzuning 2003-03-15
  • 打赏
  • 举报
回复
不知所以
xuzuning 2003-03-14
  • 打赏
  • 举报
回复
<?php
$s = "abc def ghi jkl mno
{abc def ghi jkl mno}
abc def ghi jkl mno
{abc def ghi jkl mno}
";
$patterns = array(
"/([^{]*)def([^}]*)/",
"/([^{]*)jkl([^}]*)/"
);
$replace = array(
"\\1opg\\2",
"\\1mno\\2"
);
echo preg_replace($patterns,$replace,$s);
?>

输出:
abc opg ghi mno mno
{abc def ghi jkl mno}
abc opg ghi mno mno
{abc def ghi jkl mno}
lpt 2003-03-14
  • 打赏
  • 举报
回复
<?php
$s = "abc def ghi jkl mno
{abc def ghi jkl mno}
abc def ghi jkl mno
{abc def ghi jkl mno}
";
$patterns = array(
"/([^{]*)def([^}]*)/",
"/([^{]*)jkl([^}]*)/"
);
$replace = array(
"\\1opg\\2",
"\\1mno\\2"
);
echo preg_replace($patterns,$replace,$s);
?>

要是分隔符{变成
,}变成
,那应该怎样变呢?
lpt 2003-03-14
  • 打赏
  • 举报
回复
字符串内容:
abc def ghi jkl mno
{abc def ghi jkl mno}
abc def ghi jkl mno
{abc def ghi jkl mno}

用正规表达式怎样把{}之外内容中的def替换成opq,jkl替换成mno?
替换的结果如下:
abc opq ghi mno mno
{abc def ghi jkl mno}
abc opq ghi mno mno
{abc def ghi jkl mno}


谢谢了
lpt 2003-03-14
  • 打赏
  • 举报
回复
up
lpt 2003-03-14
  • 打赏
  • 举报
回复
试了不行
xuzuning(唠叨) 留下你的联系方法

我的是
web:http://lpt.be10.com
qq:555291
email:jx_lpt@163.com
xuzuning 2003-03-14
  • 打赏
  • 举报
回复
相似的
/(.*)\[code\](.*)\[\/code\](.*)/
-- -- --
\\1 \\2 \\3
被()括起的部分按()出现顺序编号
你可以自由组合
可以先用int preg_match_all(string pattern, string subject, array matches, int [order]);函数分析结果,看表达式是否正确
lpt 2003-03-14
  • 打赏
  • 举报
回复
试了一下xuzuning(唠叨) 兄弟的,果然可以
<?php
$s = "abc def ghi jkl mno
{abc def ghi jkl mno}
abc def ghi jkl mno
{abc def ghi jkl mno}
";
$patterns = array(
"/([^{]*)def([^}]*)/",
"/([^{]*)jkl([^}]*)/"
);
$replace = array(
"\\1opg\\2",
"\\1mno\\2"
);
echo preg_replace($patterns,$replace,$s);
?>

要是分隔符{变成
,}变成
,那应该怎样变呢?
lpt 2003-03-13
  • 打赏
  • 举报
回复
总结200分了

21,887

社区成员

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

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