正则表达式初版

一、简介

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.匹配真正的字符

相关推荐
A小辣椒13 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒17 小时前
TShark:基础知识
linux
AlfredZhao19 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式