正则表达式 锚点、环视

2022-08-28 19:34:45 浏览数 (1)

有些时候我们需要在文本的特定位置匹配数据,比如在行开头,结尾匹配文本。

锚点

正则表达式定义了一些特殊字符表示文本中的位置,称作锚点,锚点匹配文本中的某个位置但不消耗字符。这些特殊字符包括

锚点

含义

^

行开头

A

行开头

Z

行结尾

$

行结尾

b

单词边界

下面的正则表达式是将行首的From修改成FROM

代码语言:perl复制
$content =~ s/^From/FROM/g;

正则表达式^From$匹配只有From单词的行。

正则表达式bFromb匹配单词From,而不匹配Fromal之类的单词。

环视

除了上述的预定义的位置,正则表达式也可以自定义位置规则,这称作环视(lookaround),

环视也不占用任何字符,只匹配文本中的特定位置。环视的种类如下:

环视

含义

(?=abc)

当前位置的右侧是abc则匹配成功

(?!abc)

当前位置的右侧不是abc则匹配成功

(?<=abc)

当前位置的左侧是abc则匹配成功

(?!=abc)

当前位置的左侧不是abc则匹配成功

例如(?<=abc)de匹配字符串abcde中的de,而不会匹配ade中的de

0 人点赞