三种正则模式:
- 匹配:m//,其中前缀 m 可省略
- 替换:s///
- 转化:tr///
操作符:
- =~:存在匹配项则返回结果
- !~:不存在匹配项则返回结果
修饰符:
- i:忽略大小写,如:s/.../.../i
- m:默认情况下,会将匹配目标(一个字符串)整体当成一行,即使其中存在换行符;开启此多行模式后,遇到换行符就会认为是新的一行;此时 '.' 匹配不到换行符
- o:匹配到第一个值后,后续的匹配以这个固定值查找,不再进行正则匹配,可加快后续查找的速度
- s:单行模式,换行符被当作一个常规的字符,此时 '.' 可以匹配到换行符
- x:仅用于提高正则表达式的可读性,将正则表达式里的空格自动清除,如: /d+ s{3}/x 与 /d+s{3}/ 完全相同
- g:全局匹配
- 专用于 tr 转化修饰符:
- c:指定字符以外的字符,全部转化为指定字符,如:tr/[a-z]/ /c 表示将除小写字母以外的所有字符替换为空格
- d:删除匹配到的字符
- s:将连续的相同字符缩成一个,即去重,如:tr/[a-z]/[a-z]/s 表示对所有小写字母中连续的相同字符去重
正则表达式规则:
d 匹配一个数字的字符,和 [0-9] 语法一样 d+ 匹配多个数字字符串,和 [0-9]+ 语法一样 D 非数字,其他同 d D+ 非数字,其他同 d+ w 英文字母或数字的字符串,和 [a-zA-Z0-9_] 语法一样 w+ 和 [a-zA-Z0-9_]+ 语法一样 W 非英文字母或数字的字符串,和 [^a-zA-Z0-9_] 语法一样 W+ 和 [^a-zA-Z0-9_]+ 语法一样 s 空格,和 [ f] 语法一样 s+ 和 [ f]+ 一样 S 非空格,和 [^ f] 语法一样 S+ 和 [^ f]+ 语法一样 匹配以英文字母,数字为边界的字符串 B 匹配不以英文字母,数值为边界的字符串 a|b|c 匹配符合a字符 或是b字符 或是c字符 的字符串
...