介绍
一种模式匹配语言,可以使永远筛选数据以查找特定的内容,可以应用在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一起使用
举例: