Perl正则表达式常用语法总结

操作符

m/…/     模式匹配操作符

s/…/…/    模式替换操作符

qr/…/     预编译正则表达式

=~        绑定操作符

普通元字符

.        通配符,可匹配除\n外的一个任意字符

\        用于字符转义

|        择一竖线

\Q…\E    转义\Q至\E之间的所有元字符

字符集

[…]          肯定型字符集

[^…]         否定型字符集

–           可用于表示一系列连续字符

[-…\\…\^]    字符集中表示真正的“-”、“\”与“^”

字符集简写

\d与\D     基本相当于[0-9]与[^0-9]

\w与\W    基本相当于[A-Za-z0-9_]与[^A-Za-z0-9_ ]\s与\S      空白字符集(包括空格、\n等)及其反义字符集

量词

*                  可重复匹配0至任意多次

+                  可重复匹配1至任意多次

?                  可重复匹配0或1次

{1,5}               通用量词,可重复匹配1至5次

{1,}                无重复匹配次数上限,此处相当于量词“+”

{5}                 固定匹配5次

*?、+?、??、{…}?    忽略优先量词

*+、++、?+、{…}+    占有优先量词

与小括号相关的语法

(…)             普通捕获组

(?: …)           非捕获组

(?> …)           固化分组

(? …)     命名捕获组

(?i-m: …)        启用i修饰符并关闭m修饰符的非捕获组

((?i-m) …)       启用i修饰符并关闭m修饰符的捕获组

\1、\2、\3      普通绝对反向引用

\name          反向引用命名捕获组

\g{…}、\k<…>    支持相对反向引用的写法(二者略有差别)

$1、$2、$3      使用绝对编号的捕获变量

$+{name}        通过%+散列调用命名捕获组内容

$`、$&、$’      匹配前字段、匹配字段与匹配后字段(使用会大幅降低正则引擎的速度)

修饰符

/i    模式字符忽略大小写

/m   启用行首尾锚位

/x    启用宽松排列模式

/g    全局匹配、全局替换

/o    只编译一次

锚位

\A        绝对开头锚位

\Z        绝对末尾锚位

\z        忽略末尾换行符的末尾锚位

^、$      未开启/m时,相当于\A与\z,开启\m后为行首尾锚位

\b        单词边界锚位

\B        非单词边界锚位

\G        锚位到上一次成功匹配的结束位置

(?= …)     肯定顺序环视

(?! …)     否定顺序环视

(?<= …)    肯定逆序环视

(?

优先级

小括号 > 量词 > 锚位和序列 > 择一竖线 > 原子

樱雨楼

完于:2016.3.30

    原文作者:樱雨楼
    原文地址: https://www.jianshu.com/p/28d6bc7a1a98
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞