目录
一、正则表达式
1、 正则表达式定义
正则表达式又称正规表达式、常规表达式。在代码中常简写为 regex、regexp 或 RE。正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说, 是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定字符串。
-
通常用于判断语句中,用来检查某一字符串是否满足某一格式
-
正则表达式是由普通字符与元字符组成
-
普通字符包括大小写字母、数字、标点符号及一些其他符号
-
元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式
Linux 中常用的有两种正则表达式引擎
-
基础正则表达式:BRE
支持的工具:grep、egrep、sed、awk
-
扩展正则表达式:ERE
支持的工具:egrep、awk
文本处理工具 | 基础正则表达式 | 扩展正则表达式 |
---|---|---|
vi 编辑器 | 支持 | \ |
grep | 支持 | \ |
egrep | 支持 | 支持 |
sed | 支持 | \ |
awk | 支持 | 支持 |
2、基础正则表达式
基础正则表达式是常用的正则表达式部分,常用的元字符及作用如下表所示:
元字符 | 作用 |
---|---|
\ | 转义字符,用于取消特殊符号的含义,如:\!,\n |
^ | 匹配输入字符串的开始位置。除非在方括号表达式中使用,表示不包含该字符集合。如:^world匹配以world开头的行 |
$ | 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则“$”也匹配 ''\n' 或' \r '。如:world $ 匹配以world结尾的行 |
. | 匹配除 \n (换行)之外的任何的1个字符 |
* | 匹配前面表达式0次或者多次 |
[] | 字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a” |
[^] | 赋值字符集合。匹配未包含的一个任意字符。例如,“abc”可以匹配“plain”中“plin”中的任何一个字母 |
\{n\} |
匹配前面的表达式n次,如:[0-9]\{2\} 匹配两位数字 |
\{n,\} |
匹配前面的表达式不少于n次,如:[0-9[\{2,\} 表示两位及两位以上数字 |
\{n,m\} |