本帖最后由 new_phper 于 2012-06-28 16:17:51 编辑

解决方案 »

  1.   

    这我知道~麻烦版主仔细看下我的问题好吧
    \n是正则里约定好的,但为什么在Mysql中要使用\\n呢?书上说是MySQL解释一个,正则解释一个。我的问题是为什么PHP里用\n,一个反斜线就可以。
    不是应该PHP解释一个,正则解释一个吗?
      

  2.   

    \n 在双引号里面别解析为换行
    而  \\n 和 \n 都能匹配换行。
      

  3.   

    mysql 里的不能跟php的混搭,这个是要分清楚的,以后去js的话 你还得记得另外一套...
    mysql里的因为要考虑到各种符号引发的血案,所以我觉得它会比较严格的要求这个东西.你想想SQL注入...
      

  4.   

    嗯,我只是觉得这种东西各种语言应该是通的,所以才想深入了解一下,以后再遇到问题就知道为什么了。那比如这个字符串:$a = "aaa\naaa";
    必须要用"/\w{3}\\\\n\w{3}/"才能匹配的到,这是为什么呢?
      

  5.   


    错了错了!
    是这样:
    那比如这个字符串:$a = "aaa\\naaa";
    必须要用"/\w{3}\\\\n\w{3}/"才能匹配的到,这是为什么呢?
      

  6.   

    双重转义   可以理解为 一个“\”让PHP解释了,另一个“\”被正则解释了。
      

  7.   

    \n是一个字节,prg需要的就是这么一个字节,但它同样认为\n两个字符是换行符,所以以下都是正确的。'\n'   “\n”. “\\n”
      

  8.   

    在MySQL中使用正则,如遇到要匹配回车,要这样写:\\n-----------------------------------把你这个例子写出来,然后我们就可以解释了
      

  9.   


    对啊,你也说如果字符串中有一个“\”,就被当作是转义字符,如果是两个“\”,就是“\”本身。
    那 $a = "aaa\\naaa" 这个字符串里不就是两个“\”吗?那这个串不就应该是 aaa\naaa 吗?
      

  10.   

    是的$a = "aaa\\naaa";
    echo $a;
    输出
    aaa\naaa
    $a = "aaa\naaa";
    echo $a;
    输出:(在文本方式下查看)
    aaa
    aaa
    还有问题继续问!
      

  11.   

    你理解的基本正確。 \\ 会被php解释为 ‘\’,  但\w php依然解释为\w 
    对于控制字符, 如果用的是双引号, \n会被php解释成换行, 单引号则依然是字符'\n' 正则表达式里不管是换行还是'\n'都能匹配到换行符。