正则表达式:(英语:Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法,在科学中,是指一个用来描述或者匹配一系列符合某个句法规则的的单个字符串。可以分为基本正则表达式和扩展正则表达式。
一、基本正则表达式:
1、基本正则表达式的元字符
. :匹配任意单个字符
[]: 匹配指定范围内的任意单个字符,其中有以下几种常用特殊的表达方式表示特殊的意义:
[[:digit:]] 匹配任意单个数字即[0-9]
[[:lower:]] 匹配任意单个小写字母即[a-z]
[[:upper:]] 匹配任意单个大写字母即[A-Z]
[[:space:]] 匹配单个空白字符
[[:alpha:]] 匹配任意单个字母
[[:alnum:]] 匹配任意单个字母和数字
[[:punct:]] 匹配任意单个特殊符号
[^]:匹配指定范围外的任意单个字符
.* :表示任意长度的任意字符
匹配其前字符出现次数:(贪婪模式)
* :匹配其前的字符出现任意次,即0,1或多次
\?: 匹配其前的字符出现0或者1次
\+: 匹配其前的字符出现至少1次
\{m,\} 匹配其前的字符出现至少m次
\{0,m\} 匹配其前的字符出现至多m次
\{m\} 匹配其前的字符出现m次
锚定位置:
\< 锚定词首,亦可用\b
\> 锚定词尾,亦可用\b
^ 锚定行首
$ 锚定行尾
^$ 表示空白行
分组:
\(ab\): 例如:x\(ab\)*y表示x,y中间匹配ab分组任意次
后向引用:
\# : 表示引用从左第#个括号中的内容,例如\1表示引用左第1个括号中的内容
二、扩展正则表达式
. :匹配任意单个字符
[]: 匹配指定范围内的任意单个字符,其中有以下几种常用特殊的表达方式表示特殊的意义:
[[:digit:]] 匹配任意单个数字即[0-9]
[[:lower:]] 匹配任意单个小写字母即[a-z]
[[:upper:]] 匹配任意单个大写字母即[A-Z]
[[:space:]] 匹配单个空白字符
[[:alpha:]] 匹配任意单个字母
[[:alnum:]] 匹配任意单个字母和数字
[[:punct:]] 匹配任意单个特殊符号
[^]:匹配指定范围外的任意单个字符
.* :表示任意长度的任意字符
匹配其前字符出现次数:
* :匹配其前的字符出现任意次,即0,1或多次
?: 匹配其前的字符出现0或者1次
+: 匹配其前的字符出现至少1次
{m,n} 匹配其前的字符出现至少m次,至多n次
锚定位置:(同基本正则表达式)
分组:
(ab): 例如:x(ab)*y表示x,y中间匹配ab分组任意次
| :或者
grep|egrep:根据模式搜索文本,并将符合模式的问本行显示出来
模式: PATTERN,文本字符和正则表达式的元字符组合而成的字符串
用法:
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
其中常用的选项有:
-i 不区分大小写
--color 用颜色显示查找到的内容
-o 只显示被匹配到的内容
-v 反向显示,跟-o选项作用相反
-E 使用扩展正则表达式
-A # 显示匹配的行并显示匹配行后面#行的内容
-B # 显示匹配的行并显示匹配行后面#行的内容
-C # 显示匹配的行并显示匹配行前后#行的内容