正则表达式

目录

一、概述

二、基本正则表达式

 1、元字符

 2、表示次数

 3、位置锚定

 4、分组

三、拓展正则表达式

四、grep命令

五、正则表达式实验


一、概述

    正则表达式由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符,使用正则表达式后面一般要跟上" "。

    正则表达式被很多命令程序和开发语言所广泛支持:vim, less,grep,sed,awk, nginx,mysql 等。

二、基本正则表达式

 1、元字符

元字符不表示本来的含义,在正则表达式中有特殊含义的字符,用来表示控制或统配的功能。

.   匹配任意单个字符,可以是一个汉字 ,也可以是空格。例:grep  "r..t"  /etc/passwd

[   ]   匹配指定范围内的任意单个字符。

正则表达式_第1张图片

[ ^  ]   匹配指定范围外的任意单个字符,示例:[^zhou] 

 2、表示次数

*   匹配*前面字符的任意次,包括0次到无数次

.*   匹配任意长度的任意字符,不包括0次

\?   匹配其前面的字符出现0次或1次,表示可有可无

\+   匹配其前面的字符出现至少1次,即>=1

\{n\} 匹配前面的字符n次

\{n,m\}  匹配前面的字符至少n次,至多m次

\{,m\}   匹配前面的字符至多m次,即<=m

\{n,\}   匹配前面的字符至少n次,即>=n

 3、位置锚定

^   表示行首锚定,用于最左侧

$   表示行尾锚定,用于最右侧

^PATTERN$   用于匹配整行,例:^bash$表示这一行只有bash才能匹配出,包含空格也不行

^$   表示空行

^[[:space:]]*$   表示空白行

\< 或 \b   匹配字符串词首,用于单词的左侧

\> 或 \b   匹配字符串词尾,用于单词的右侧

\bPATTERN\b   匹配整个单词

 4、分组

用()括号将多个字符捆绑在一起,当作一个整体处理,如:(root)

\| 表示或者

三、拓展正则表达式

使用grep 命令时,默认不支持拓展正则表达式。使用grep -E 或者 egrop 才能支持拓展,作用是去掉部分\。

四、grep命令

 grep命令格式 :grep  [选项] ... 查找条件  目标文件

选项:

-m :匹配n行后停止

-v :取反

-i :忽略大小写

-n :显示匹配的行号

-c :只显示匹配的行数

-o :只显示匹配内容

-q :静默输出,不把匹配到的内容输出

-A :after,显示匹配内容的后n行

-B :before,显示匹配内容的前n行

-C :context,显示匹配内容的前后n行

-e  :实现多个选项的逻辑或 关系

-w :匹配整个单词

-f :匹配两个文件的相同部分,以第一个文件匹配第二个文件

-r :递归,快速搜索目录

五、正则表达式实验

1、使用数组提取IP地址

2、表示qq号

3、表示邮箱

4、表示手机号

你可能感兴趣的:(正则表达式)