linux:正则表达式

介绍

一种模式匹配语言,可以使永远筛选数据以查找特定的内容,可以应用在vim、grep、less、perl、python中

基础

.(点)

匹配除 \n 之外的任何单个字符,若要匹配包括 \n ,则应使用  [.\n] 

[xyz]

匹配所包含的任意一个字符

例如: [abc] 可以匹配“plain”中的 a

^

匹配输入字符串的开始位置

例如: ^z能匹配所有以 z 开头的字符串

匹配输入字符串的结束位置

例如: $o 能匹配所有以 o 结尾的字符串

*

匹配前面的子表达式零次或多次

例如:zo* 能匹配 z 以及 zoo  ,等价于{0,}

+

匹配前面的子表达式一次或多次

例如: zo+  能匹配 zo 以及zoo ,但不能匹配z ,等价于 {1,}

匹配前面的子表达式零次或一次

例如: do(es)?  能匹配 do 以及does  ,等价于 {0,1}

\b

匹配一个单词边界,等价于 \< 和 \>

例如:er\b 可以匹配 never 中的 er,但不能匹配 verb 中的 er

运用

grep

文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来

常用选项:

-i :不区分大小写

-v:仅显示不包含正则表达式匹配项的行

-r:将递归的匹配正则表达式的数据搜索应用在一族文件或者目录中

-A number :显示正则表达式匹配项之后的行数

-B number :显示正则表达式匹配项之前的行数

-e:如使用多个 -e,可以提供多个正则表达式,并将与逻辑 or一起使用

举例:

posted @ 2020-07-02 11:58  PamShao  阅读(223)  评论(0编辑  收藏  举报