- 正则基础
** 元字符
** “[]” 字符组
** “^”
'zfd[^abc]' : 不包含abc
'^asd[abc]' : 以a字符开头的行
** “$”
'abcd$' : 以d字符结尾的行
** “.”
匹配任一字符
** “-“
[a-z] : a-z的任一字符
** “|”
a|b : a或者b字符
gre(a|b)asd :
** “?”
colou?r : 非必须出现u字符,0 or 1
** “*”
colou*r : 0 or more
** “+”
colou+r : 1 or more
** “{n,m}”
a{1,3} : 1 <= times <= 3
** “\b”
在字符组中,匹配一个退格符,否则通常作为单词分界符
** “\t”
制表符号,
** “\n”
换行符号
** “\r”
回车符
** “\s”
匹配所有”空白”(空格符,制表符,换行符和回车符)
** “\S”
除\s之外的任何字符
** “\w”
[a-zA-Z0-9]
** “\W”
[^a-zA-Z0-9]
** “\d”
[0-9]
** “\D”
[^0-9]
** “(?:)” 只分组,不匹配
** “环视(lookahead)”
环视不会占用字符,只会找到匹配的位置
肯定顺序环视(?=...):子表达式能匹配右侧文本
否定顺序环视(?!...):子表达式不能匹配右侧文本
肯定逆序环视(?<=...):子表达式能匹配左侧文本
否定逆序环视(?<!...):子表达式不能匹配左侧文本
- perl ~~~ perl -p -i -e ‘s/sysread/read/g’ file
-e: 整个程序接在命令的后面 -p: 对目标文件的每一行进行查找和替换 -i: 将替换的结果写回到文件 -w: 开启警告 ~~~
** “/i” 忽略大小写
** “m” 匹配
** “s” 替换
** “/g” 全局
- egrep
“-i” 忽略大小写
- 正则表达式原理
DFA:
NFA: