字符串内容:
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}
谢谢了
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}
谢谢了
$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}
<?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);
?>要是分隔符{变成[code],}变成[/code],那应该怎样变呢?
/(.*)\[code\](.*)\[\/code\](.*)/
-- -- --
\\1 \\2 \\3
被()括起的部分按()出现顺序编号
你可以自由组合
可以先用int preg_match_all(string pattern, string subject, array matches, int [order]);函数分析结果,看表达式是否正确
$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);
?>要是分隔符{变成[code],}变成[/code],那应该怎样变呢?
abc def ghi jkl mno
[code]abc def ghi jkl mno[/code]
abc def ghi jkl mno
[code]abc def ghi jkl mno[/code]用正规表达式怎样把[code]...[/code]之外内容中的def替换成opq,jkl替换成mno?
替换的结果如下:
abc opq ghi mno mno
[code]abc def ghi jkl mno[/code]
abc opq ghi mno mno
[code]abc def ghi jkl mno[/code]我写的这个只能替换里面的分隔符里面,不能替换外面的内容。
$patterns = array(
"/(\[)(code)(])(\r\n)*(.*)def(.*)(\[\/code\])/",
"/(\[)(code)(])(\r\n)*(.*)jkl(.*)(\[\/code\])/"
);
$replace = array(
"\\5opg\\6",
"\\5mno\\6"
);
$patterns = array(
"/(\[)(\/code)(])(\r\n)*(.*)def(.*)(\[code\])/"
);
$replace = array(
"\\6opq\\7"
);
$replacearray = array("\\1凌萍\\2");怎样替换全部