收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 9060|回复: 7

[php] 如何用preg_replace匹配反斜杠?....

[复制链接]
发表于 2006-12-16 01:56:59 | 显示全部楼层 |阅读模式
反斜杠就是转义符的"\"
正则不是很在行,虽然胡乱试出了想要的结果,但是非常不理解。

如果用/\\/的话,好像会把最后一个/转义导致报错。好像无论如何如果用\\的话,它都会把\\之后的一个字符转义.......@ @
如果用/\\\/的话虽然可以匹配1个反斜杠,但是用/\\\\/同样也能匹配1个反斜杠.....

看上去似乎2个反斜杠整体(就是"\\")也是一个转义符?
求高人解答.....
发表于 2006-12-16 11:51:05 | 显示全部楼层
要匹配一个反斜线,用“\\”。

P.S:
单引号或双引号括起来的 PHP 字符串中的反斜线有特殊含义。
因此必须用正则表达式的 \\ 来匹配 \,而在 PHP 代码中要用 "\\\\" 或 '\\\\'。

例如:
下面代码字符串中有\\r\\n的字符,直接显示出来的效果会是: i love blueidea \r\n are you?
要想匹配\r\n,必须使用“\\\\”去匹配一个“\”。如下例所示:

  1. $str= "i love blueidea \\r\\n  are you?";
  2. echo preg_replace("/\\\\r\\\\n/","<br />",$str);
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-12-16 12:26:29 | 显示全部楼层
受教了, 不知道php为什么会这么奇怪.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-16 12:30:37 | 显示全部楼层
唔...PHP的特殊待遇问题吗...... 非常感谢解答

但是胡乱试验的结果似乎是用\\\也是可以匹配到单个\
比如用"/\\\[\\\]/"是可以匹配到文字中的两个反斜杠,比如:i love blueidea \\rn are you 中的\\
还是有点困惑如何去理解...

p.s.:顺便再问一下...PHP能否用Unicode代码去匹配?比如反斜杠用\u005C,但是实际上\u005C的话会报错,不知道有没有别的可行的写法

[[i] 本帖最后由 Cyanite 于 2006-12-16 12:31 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2006-12-16 23:54:07 | 显示全部楼层
你的 "/\\\[\\\]/" 这个可以匹配 \ 吗? 我这边不可以哦!

另外:如果要匹配unicode,需要加上unicode的模式修正符
例如:/\x{005c}/u
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-17 01:03:04 | 显示全部楼层
"/\\\[\\\]/"是匹配2个反斜杠,就是\\

如果是1个反斜杠\的话用"/\\\/"可以匹配到。
我的意思是现在看起来好像"/\\\/"和"/\\\\/"都可以匹配1个反斜杠\
看起来比较怪不太好理解..

Unicode模式受教......原来最后要加模式...拜谢 m(_ _)m
回复 支持 反对

使用道具 举报

发表于 2006-12-17 13:35:02 | 显示全部楼层
楼主客气鸟~~~~

实验过,/\\\/真不能匹配一个\。在我2楼的例子中,字符串中的\\r\\n,直接打印出来就只有一个\的。因为需要字符串中有一个\,所以要在前面加上转义符\。你不要混淆了。
回复 支持 反对

使用道具 举报

发表于 2017-10-31 15:54:21 | 显示全部楼层
接楼上,preg_replace "/\\\/",可以匹配到单斜杠
  1. define( "ROOT_PATH", preg_replace("/\\\/",'/',__DIR__.'/') );
复制代码

这个测试可行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-9-22 21:38 , Processed in 0.109101 second(s), 7 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表