\1\ \2\也不对,但对应patterns中的分块的猜想是对的。反正问题解决了,就是不知正解,请高手解决一下?
如上例:\\1--(19|20)(\d{2})
\\2--(\d{1,2})
\\3--(\d{1,2})$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);\\1--("#(^|[\n ])
\\2--([\w]+?://[^ \"\n\r\t<]*)
如上例:\\1--(19|20)(\d{2})
\\2--(\d{1,2})
\\3--(\d{1,2})$ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);\\1--("#(^|[\n ])
\\2--([\w]+?://[^ \"\n\r\t<]*)
$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
"/^\s*{(\w+)}\s*=/");
$replace = array ("\\3/\\4/\\1\\2", "$\\1 =");
print preg_replace ($patterns, $replace, "{startDate} = 1999-5-27");
?>\\1指(19|20)
\\2指(\d{2})
\\3指第1个(\d{1,2})
\\4指第2个(\d{1,2})
这样说应该懂了吧
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
print preg_replace($pattern, $replacement, $string);/* Output
======April1,2003 */
?>
如果搜索到匹配项,则会返回被替换后的 subject,否则返回原来不变的 subject。