正则表达式中的“\”转义的问题 本帖最后由 new_phper 于 2012-06-28 16:17:51 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这我知道~麻烦版主仔细看下我的问题好吧\n是正则里约定好的,但为什么在Mysql中要使用\\n呢?书上说是MySQL解释一个,正则解释一个。我的问题是为什么PHP里用\n,一个反斜线就可以。不是应该PHP解释一个,正则解释一个吗? \n 在双引号里面别解析为换行而 \\n 和 \n 都能匹配换行。 mysql 里的不能跟php的混搭,这个是要分清楚的,以后去js的话 你还得记得另外一套...mysql里的因为要考虑到各种符号引发的血案,所以我觉得它会比较严格的要求这个东西.你想想SQL注入... 嗯,我只是觉得这种东西各种语言应该是通的,所以才想深入了解一下,以后再遇到问题就知道为什么了。那比如这个字符串:$a = "aaa\naaa";必须要用"/\w{3}\\\\n\w{3}/"才能匹配的到,这是为什么呢? 错了错了!是这样:那比如这个字符串:$a = "aaa\\naaa";必须要用"/\w{3}\\\\n\w{3}/"才能匹配的到,这是为什么呢? 双重转义 可以理解为 一个“\”让PHP解释了,另一个“\”被正则解释了。 \n是一个字节,prg需要的就是这么一个字节,但它同样认为\n两个字符是换行符,所以以下都是正确的。'\n' “\n”. “\\n” 在MySQL中使用正则,如遇到要匹配回车,要这样写:\\n-----------------------------------把你这个例子写出来,然后我们就可以解释了 对啊,你也说如果字符串中有一个“\”,就被当作是转义字符,如果是两个“\”,就是“\”本身。那 $a = "aaa\\naaa" 这个字符串里不就是两个“\”吗?那这个串不就应该是 aaa\naaa 吗? 是的$a = "aaa\\naaa";echo $a;输出aaa\naaa$a = "aaa\naaa";echo $a;输出:(在文本方式下查看)aaaaaa还有问题继续问! 你理解的基本正確。 \\ 会被php解释为 ‘\’, 但\w php依然解释为\w 对于控制字符, 如果用的是双引号, \n会被php解释成换行, 单引号则依然是字符'\n' 正则表达式里不管是换行还是'\n'都能匹配到换行符。 php打分系统 小妹请教soket发送文件问题 求助如何实现页面与代码分离 关于无限级树节点的删除操作 “把缓存结果存储在共享内存中以获取更快的速度”,请问下PHP下怎么做这个缓存呢? 子类继承父类 父类private问起求各位大神详解 谁有和极限oa功能差不多的php oa系统原代码下? 采取那些措施可以减少Apache死掉呀? 求助!那位大侠有购物蓝程序 mysql直接筛选中文无乱码,在php中使用同样语句输出后中文显示乱码 请教一下,为什么说Mysql预处理可以防止SQL注入呢??? php 递归遍历FTP目录的问题
\n是正则里约定好的,但为什么在Mysql中要使用\\n呢?书上说是MySQL解释一个,正则解释一个。我的问题是为什么PHP里用\n,一个反斜线就可以。
不是应该PHP解释一个,正则解释一个吗?
而 \\n 和 \n 都能匹配换行。
mysql里的因为要考虑到各种符号引发的血案,所以我觉得它会比较严格的要求这个东西.你想想SQL注入...
必须要用"/\w{3}\\\\n\w{3}/"才能匹配的到,这是为什么呢?
错了错了!
是这样:
那比如这个字符串:$a = "aaa\\naaa";
必须要用"/\w{3}\\\\n\w{3}/"才能匹配的到,这是为什么呢?
对啊,你也说如果字符串中有一个“\”,就被当作是转义字符,如果是两个“\”,就是“\”本身。
那 $a = "aaa\\naaa" 这个字符串里不就是两个“\”吗?那这个串不就应该是 aaa\naaa 吗?
echo $a;
输出
aaa\naaa
$a = "aaa\naaa";
echo $a;
输出:(在文本方式下查看)
aaa
aaa
还有问题继续问!
对于控制字符, 如果用的是双引号, \n会被php解释成换行, 单引号则依然是字符'\n' 正则表达式里不管是换行还是'\n'都能匹配到换行符。