课程
/后端开发
/PHP
/PHP进阶篇
$p = '/\d+-\d+/';
这样的话也匹配成功了 答案写的是\- 为什么这个“-” 也要转义呢
2019-01-26
源自:PHP进阶篇 3-3
正在回答
如果短横线-是在方括号[]内,则需要使用反斜杠\转义,因为短横线-在方括号[]内有特殊含义,代表了字符的范围,如[0-9],0-9之间的所有数字。反之,如果短横线-在方括号[]外,因为-在方括号外不具有特殊含义,不需要进行转义。但是你发现,即使你在方括号外对不需要转义的字符,如这里的-使用了转义符\写成\-也是可以的,这样可以提高代码的可读性,编译器应该在编译的时候会发现不需要它实际上不需要转义而对其忽略。
顺便说一下,如果你想使用字符\的话,需要对其进行转义写成\\,这样匹配出来的才是\字符,在方括号内外\都具有转义作用。
因为 '-'符号可以代表 标记字符范围 如 [a-b]
举报
轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序
3 回答转义是什么意思?为什么要转义
1 回答关于类的构造函数定义为私有。
2 回答元字符与转义一节中的\-问题
2 回答进行转义到底是什么意思呢?
3 回答关于clone关键字