基础,扩展正则表达式
基础正则表达式
字符匹配:
.: 匹配任意单个字符
[]: 匹配指定范围内的任意单个字符
[^]:匹配指定范围之外的任意单个字符
字符集:
引用方法:[[:space:]]
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:代表英文大小写字符及数字,即0-9,A-Z,a-z
[:graph:]:代表除了空格键(空格键和tab键)外其他所有的按键
[:prinit:]:代表任何可以被打印出来的字符
[:xdigit:]:代表十六进制的数字类型,因此包括0-9,A-F,a-f的数字与字符
[:blank:]代表空格键和tab键
[:cntrl:]:代表键盘上面的控制按键,即包括CR,LF,Tab,Del等
[abc],[a-z],[A-Z],[a-zA-Z],[0-9a-zA-Z] 说明:也可以自定义一些字符集
匹配次数:
“\”用于转义
*:匹配其前面的字符任意次
.*:任意长度的任意字符
\?:匹配其前面的字符1次或0次
\{m,n\}:匹配其前面的字符至少m次至多n次
\{n,\}:表示匹配前面的内容至少n次
\{n\}: 表示匹配前面的内容n次
位置锚定:
^word:锚定行首,此字符后面的内容一定要出现在行首
word$: 锚定行尾,此字符前面的内容一定要出现在行尾
^$: 表示空白行
\<或\b: 锚定词首,其后面的任意字符必须作为单词的首部出现
\>或\b:锚定词尾,其后面的任意字符必须作为单词的尾部出现
\<>\:表示精确匹配,表示这个字母组合既在词首又在词尾,那就是一个单词
分组匹配:
“\”用作转义
\(\)
例如:\(ab\)*:将ab作为一个整体,ab可以出现任意次
“()”不仅可以将匹配的内容进行分组,还有后向引用的作用
\1:引用第一个左括号及其对应的右括号所包括的所有的内容
\2:引用第二个左括号及其对应的右括号所包括的所有的内容
\3:引用第三个左括号及其对应的右括号所包括的所有的内容
扩展正则表达式
扩展正则表达式相比较与基础正则只是增加了一些新内容
以下命令可以引用扩展正则表达式
grep -E
egrep
sed -r
awk
匹配规则:
word?:匹配word一次或者零次
word+:匹配word至少一次
word1|word2:用或的方式找出数个字符串
例如:”glad|good“ 查找”glad“或者”good”这两个字符串
(word):将括号内的内容作为一个整体查找,其实和基础正则表达式的区别就是没有转移符
(word)+:将括号内的内容作为整体匹配一次以上进行查找