首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

PHP正则反向摘引求解

2013-07-16 
PHP正则反向引用求解?使用php反向捕获又不知道怎么回事了。把下面字符串里面的4个连续的数外面的符号去掉。f

PHP正则反向引用求解?
使用php反向捕获又不知道怎么回事了。

把下面字符串里面的4个连续的数外面的符号去掉。

fsdfsdafasfasdfsdf<{2365}>

,还请分析下我写的哪里有问题?

<?php
header("Content-type:text/html;charset=utf-8");
$str="fsdfsdafasfasdfsdf<{2365}>";
$mypreg="/<{(\d\d\d\d)}>/";//()里面表示4个连续的数,使用括号表示我捕获这个子表达式,一会引用
$mycon="\1"; //这个是替换内容,我反向引用上面的4个数字2365,用这4个数字替换上面有外符号的整块<{2365}>
echo $str;
echo "<br/>";
$str=preg_replace($mypreg,$mycon,$str);
echo $str;


结果是能够捕获到<{2365}> 这个东东,但是反向引用怎么都没有内容,应该是反向引用错了,没有引用到内容。求指点。
[解决办法]
是不是没有指定子表达式的组名啊
要指定一个子表达式的组名,使用这样的语法:(?<Word>\w+)
word就是表达式的组名
放到后面引用的语法\k<Word>

我也是新学的 理解也不深
[解决办法]
$mycon="\\1"; 
或者
$mycon='\1';

都可以

热点排行