转义序列(反斜线)
反斜线有多种用法。首先,如果紧接着是一个非字母数字字符,表明取消
该字符所代表的特殊涵义。这种将反斜线作为转义字符的用法在字符类
内部和外部都可用。
比如,如果你希望匹配一个 "*" 字符,就需要在模式中写为 "\*"。
这适用于一个字符在不进行转义会有特殊含义的情况下。 但是,
对于非数字字母的字符,总是在需要其进行原文匹配的时候在它前面增加一个反斜线,
来声明它代表自己,这是安全的。如果要匹配一个反斜线,那么在模式中使用 ”\\”。
注意:
反斜线在单引号字符串和双引号字符串
中都有特殊含义,因此要匹配一个反斜线,
模式中必须写为 ”\\\\”。 译注: “/\\/”, 首先它作为字符串,反斜线会进行转义,
那么转义后的结果是/\/,这个才是正则表达式引擎拿到的模式,
而正则表达式引擎也认为 \ 是转义标记,它会将分隔符 / 进行转义,
从而得到的是一个错误,因此,需要 4 个反斜线才可以匹配一个反斜线。
如果一个模式被使用 PCRE_EXTENDED 选项编译,
模式中的空白字符(除了字符类中的)和未转义的#到行末的所有字符都会被忽略。
要在这种情况下使用空白字符或者#,就需要对其进行转义。
反斜线的第二种用途提供了一种对非打印字符进行可见编码的控制手段。
除了二进制的 0 会终结一个模式外,并不会严格的限制非打印字符(自身)的出现,
但是当一