拾遗:Perl 正则表达式

三种正则模式:

  • 匹配: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字符 的字符串

...

原文地址:https://www.cnblogs.com/hadex/p/6849766.html