<?php
$str='$2';
$patern='/\$2/';
if(preg_match($patern,$str))
echo "ok";
else
echo "no";
?>

解决方案 »

  1.   

    为什么不能在$patern中使用双引号啊
      

  2.   

    可以使用双引。但是你的问题是双引里面的转义符在那个赋值中已经转义了。或者你可以这样:
    $patern="/\\$2/";
      

  3.   

    真是不了解啊,
    <?php
    $str="\$2";
    $patern="/\$2/";
    if(preg_match($patern,$str))
    echo "ok";
    else
    echo "no";
    ?>
    $str明明是\$,$patern也明明是\$来比对的啊,应该可以比对的,为什么不行啊
      

  4.   

    改一点点,这样你就知道为什么了
    <?php
    $str="\$2";
    $patern_1="/\$2/";
             $patern_2 = $patern_1;
             echo $patern_2; //看看结果,然后看是不是你要的$patern !
    if(preg_match($patern_2,$str))
    echo "ok";
    else
    echo "no";
    ?>
      

  5.   

    哦,为什么
    $patern="/\(/"  显示的是  /\(/

    $patern="/\$/"  显示的却是/$/