关于转义-

来源:3-3 元字符与转义

_whoAmI

2019-01-26 23:47

$p = '/\d+-\d+/';

这样的话也匹配成功了 答案写的是\- 为什么这个“-” 也要转义呢

写回答 关注

2回答

  • qq_慕勒8428175
    2020-05-14 10:46:03

    如果短横线-是在方括号[]内,则需要使用反斜杠\转义,因为短横线-在方括号[]内有特殊含义,代表了字符的范围,如[0-9],0-9之间的所有数字。反之,如果短横线-在方括号[]外,因为-在方括号外不具有特殊含义,不需要进行转义。但是你发现,即使你在方括号外对不需要转义的字符,如这里的-使用了转义符\写成\-也是可以的,这样可以提高代码的可读性,编译器应该在编译的时候会发现不需要它实际上不需要转义而对其忽略。

    顺便说一下,如果你想使用字符\的话,需要对其进行转义写成\\,这样匹配出来的才是\字符,在方括号内外\都具有转义作用。

  • 掘金木匠
    2019-02-08 22:52:28

    因为 '-'符号可以代表 标记字符范围 如 [a-b]

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181837 学习 · 2577 问题

查看课程

相似问题