正则表达式断言(正则表达式断言只能固定长度吗?)

正则表达式断言

简介

正则表达式断言是一种特殊语法元素,用于指定匹配模式的附加条件或约束。它们允许更精确地控制正则表达式的行为,从而提高匹配的准确性。

多级标题

零宽断言

\b

匹配单词边界

\B

匹配非单词边界

\A

匹配字符串开头

\Z

匹配字符串结尾

^

匹配字符串的开头

$

匹配字符串的结尾

正向先行断言

(?=regex)

匹配如果紧随其后的字符序列满足regex条件

(?<=regex)

匹配如果紧接其前的字符序列满足regex条件

否定先行断言

(?!regex)

匹配如果紧随其后的字符序列不满足regex条件

(?

匹配如果紧接其前的字符序列不满足regex条件

正向后行断言

(?<=regex)

匹配如果其后的字符序列满足regex条件

(?

匹配如果其前的字符序列满足regex条件

否定后行断言

(?

匹配如果其后的字符序列不满足regex条件

(?!!regex)

匹配如果其前的字符序列不满足regex条件

内容详细说明

零宽断言匹配一个位置,而不是一个字符,因此不会影响匹配结果的长度。它们用于验证字符序列是否符合特定条件。正向先行断言和否定先行断言分别指定紧随其后的字符序列必须或不能满足给定的条件。它们用于查找具有特定后续字符的模式。正向后行断言和否定后行断言与先行断言类似,但它们指定紧接其前的字符序列必须或不能满足给定的条件。它们用于查找具有特定前导字符的模式。

示例

\bthe\b

匹配以"the"开头的单词

(?!\d)a

匹配小写字母"a",但其后面不能跟随数字

(?<=ing)er

匹配以"ing"结束的单词,且后跟"er"

html(?=\s

$)

匹配"html"标签,后面必须跟空白或字符串结尾

标签列表