断言是一个正则表达式,它要么成功(如果找到匹配),要么失败(如果未找到匹配)。
它们由锚点和环视点组成。
锚点是零宽度断言。它们不会导致引擎在字符串中前进或消耗字符,并且可以是以下之一:
^- 匹配必须从字符串或行的开头开始。
$- 匹配必须出现在字符串末尾或行或字符串末尾的 \n 之前。
\A- 匹配必须出现在字符串的开头。
\Z- 匹配必须出现在字符串末尾或字符串末尾的 \n 之前。
\z- 匹配必须出现在字符串的末尾。
\G- 比赛必须在上一场比赛结束的地点进行。
\b- 匹配必须出现在\w(字母数字)和\W(非字母数字)字符之间的边界上。
\B- 比赛不得发生在\b边界上。
Lookahead 和 Lookbehind 统称为“lookaround”,是零长度断言,就像行的开头和结尾以及单词锚点的开头和结尾一样。
不同之处在于,lookaround 实际上匹配字符,但随后放弃匹配,仅返回结果:匹配或不匹配。这就是为什么它们被称为“断言”。它们不消耗字符串中的字符,而仅断言是否可能匹配。
Lookaround 允许您创建没有它们就无法创建的正则表达式,或者没有它们就会变得非常冗长。
| 归档时间: |
|
| 查看次数: |
6813 次 |
| 最近记录: |