锚
发表日期:2021-07-01 08:57:01 | 来源: | | 浏览(994) 分类:PCRE 正则语法
锚
在一个字符类外面,在默认匹配模式下,
脱字符(^
) 是一个断言当前匹配点位于目标字符串开始处的断言。
在一个字符类内部,
脱字符(^
) 表明这个字符类中描述的字符取反(详见下文)。
脱字符(^
)并不一定要是模式的第一个字符, 但是如果处于某个可选分支时,
它应该是该分支的首字符。如果所有选择分支都以脱字符(^
)开头,这就是说,
如果模式限制为只匹配目标的开头,
它被称为是一个 ”紧固” 模式。(同样也有其他方式可以构造出紧固模式)
美元符($
)是用于断言当前匹配点位于目标字符串末尾,
或当目标字符串以换行符结尾时当前匹配点位于该换行符位置(默认情况)。
美元符($
)不一定要作为模式的最后一个字符,但是如果它在某个可选分支中时,
就应该位于该分支的末尾。美元符在字符类中没有特殊的意义。
$
的意义可以通过在编译或匹配时设置 PCRE_DOLLAR_ENDONLY 改变为只匹配字符串末尾。
这不会影响 \Z 断言的行为。
脱字符 ^
和美元符 $
字符的意义在
PCRE_MULTILINE 选项被设置时会发生变化。 当在这种情况下时,
它们匹配每一个换行符后面的和前面的字符,另外,
也会匹配目标字符串的开始和结束。比如,
模式 /^abc$/ 在多行模式下会成功匹配目标字符串 ”def\nabc”,
而正常情况下不会。因此,由于所有的可选分支都以 "^" 开始,
在单行模式下这成为紧固模式,然而在多行模式下,这是非紧固的。
PCRE_DOLLAR_ENDONLY
选项在 PCRE_MULTILINE
设置后失效。
注意: \A、\Z、 \z 等转义序列可以在任何模式下用于匹配目标字符串的开始和结束位置。 并且如果模式的所有分支都以 \A 开始,它同样是紧固的, 而与 PCRE_MULTILINE 是否设置无关。
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 简介(0)
- 分隔符(0)
- 元字符(0)
- 转义序列(反斜线)(0)
- Unicode 字符属性(0)
- 锚(0)
- 句点(0)
- 字符类(方括号)(0)
- 可选路径(|)(0)
- 内部选项设置(0)
- 子组(子模式)(0)
- 重复/量词(0)
- 后向引用(0)
- 断言(0)
- 一次性子组(0)
- 条件子组(0)
- 注释(0)
- 递归模式(0)
- 性能(0)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)