正则表达式:断言

正则表达式:断言

我想知道在正则表达式中断言的定义是什么。如果有人知道,请告诉我它到底是什么的简要定义。我也希望有一两个这样的例子。

答案1

什么是正则表达式断言?

断言是一个正则表达式,它要么成功(如果找到匹配项),要么失败(如果未找到匹配项)。

它们由锚点 (Anchors) 和环视点 (Lookarounds) 组成。


锚点

锚点是零宽度断言。它们不会导致引擎遍历字符串或消耗字符,并且可以是以下之一:

  • ^- 匹配必须从字符串或行的开头开始。

  • $- 匹配必须出现在字符串的末尾,或者出现在行或字符串末尾的 \n 之前。

  • \A- 匹配必须出现在字符串的开头。

  • \Z- 匹配必须出现在字符串的末尾或者字符串末尾的 \n 之前。

  • \z- 匹配必须出现在字符串的末尾。

  • \G- 本场比赛必须在上一场比赛结束的地方进行。

  • \b- 匹配必须出现在\w(字母数字)字符和\W(非字母数字)字符之间的边界上。

  • \B- 比赛不能发生在\b边界上。

来源正则表达式语言 - 快速参考


环视

前瞻和后瞻,统称为“环视”,是零长度断言,就像行的开始和结束以及单词锚点的开始和结束一样。

不同之处在于,lookaround 确实会匹配字符,但随后会放弃匹配,只返回结果:匹配或不匹配。这就是为什么它们被称为“断言”。它们不会消耗字符串中的字符,而只会断言匹配是否可能。

Lookaround 允许您创建正则表达式,如果没有它们,这些正则表达式就无法创建,或者如果没有它们,这些正则表达式会变得非常冗长。

来源前瞻和后瞻零长度断言

在此处输入图片描述

来源掌握前瞻和后瞻


进一步阅读

相关内容