+ -
当前位置:首页 → 问答吧 → 请问这个正则怎么理解?

请问这个正则怎么理解?

时间:2011-09-08

来源:互联网

$str = preg_replace('/\\\\([xX][\\dA-Fa-f]{1,2})|\\\\([\\d]{1,3})/e', 'hex_replace(\'$1$2\')', $str);

/\\\\([xX][\\dA-Fa-f]{1,2})|\\\\([\\d]{1,3})/e



hex_replace(\'$1$2\')

是什么意思呢?

作者: andis01   发布时间: 2011-09-08

看手册。。。

作者: mary   发布时间: 2011-09-08

hex_replace这是自定义函数
这个正则的作用是读取16进制数据,传递给hex_replace处理。
我是这样理解的。

作者: moro   发布时间: 2011-09-08

我是对四个斜杠很迷惑 \\\\

hex_replace(\'$1$2\')这里是引用结果1和结果2吗?

作者: andis01   发布时间: 2011-09-08

回复 andis01


   四个斜杠就是不转义的两个斜杠

作者: llh110220   发布时间: 2011-09-08

我是对四个斜杠很迷惑 \\\\

hex_replace(\'$1$2\')这里是引用结果1和结果2吗?
andis01 发表于 2011-9-8 15:26

每个斜杠转一次,4个斜杠转回来就是2个。
$+数字表示引用前面小括号的结果,表示结果1,和结果2

作者: moro   发布时间: 2011-09-08

\\\\([xX][\\dA-Fa-f]{1,2})
为什么要两个斜杠?
16进不是\x40 这样的么?只有一个斜杠

\\d为什么也是2个斜杠 \d不就是代表任一数字么?

作者: andis01   发布时间: 2011-09-08

相关阅读 更多