一、简介
REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。
正则表达式被很多程序和开发语言所广泛支持:vim, less,grep,sed,awk, nginx,mysql 等
主要用来匹配字符串(命令结果,文本内容)
通配符匹配文件(而且是已存在的文件)
--- 基本正则表达式
--- 扩展正则表达式
可以使用
man 7 regex
可以使用 man手册帮助
1元字符(字符匹配)
元字符:
注册用户 数字字母组成 20字符
0-9a-zA-Z\]次数 单个字符出现的次数 echo "用户名" \| grep \[0-9a-zA-Z\]次数 (20个及以下) > . 匹配任意单个字符,可以是一个汉字 > > \[\] 匹配指定范围内的任意单个字符,示例:\[zhou\] \[0-9\] \[\] \[a-zA-Z\] \[\[:alpha:\] \]==\[0-9\] \[\[0-9a-zA-Z\]\]= \[:alnum:
\^\] 匹配指定范围外的任意单个字符,示例:\[\^zhou\] \[\^a.z\] \[a.z
:alnum:\] 字母和数字 \[:alpha:\] 代表任何英文大小写字符,亦即 A-Z, a-z \[:lower:\] 小写字母,示例:\[\[:lower:\]\],相当于\[a-z
:upper:\] 大写字母 \[:blank:\] 空白字符(空格和制表符) \[:space:\] 包括空格、制表符 (水平和垂直)、换行符、回车符等各种类型的空白,比\[:blank:\]包含的范围广 \[:cntrl:\] 不可打印的控制字符(退格、删除、警铃...) \[:digit:\] 十进制数字 \[:xdigit:\]十六进制数字 \[:graph:\] 可打印的非空白字符 \[:print:\] 可打印字符 \[:punct:\] 标点符号 \\w #匹配单词构成部分,等价于\[_\[:alnum:\]
\W #匹配非单词构成部分,等价于[^_[:alnum:]]
\S #匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\s #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意Unicode 正则表达式会匹配全角空格符
1.1元字符点(.)
.在方框中,只代表.本身
.不在方框中,就代表任意字符


1.2不加 " ",会出错


1.3过滤空格

1.4*的作用
*代表,前面字符出现0次和无数次,都可以匹配

1.5.*的作用
.*代表,前面字符可以出现无数次,但出现0次,不能匹配;最少出现1次

1.6\?的作用
\?代表只能匹配,0次和1次,两次及以上就不能匹配了

1.7\+的作用
\+代表,一次和无数次,0次不行

1.8\{n\}的作用
\{n\} ###匹配前面的字符n次

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

1.10结合命令


1.表示QQ号

2.手机号码


3.邮箱


4.\b \b

5.匹配真正的字符

