正则表达式

文章介绍了正则表达式的基础知识,包括元字符如^、$、.、*的用法,以及在grep、egrep、sed、awk等工具中的应用。它详细解释了如何使用正则表达式进行字符串匹配,如匹配特定模式、数量控制等,并提供了两个实验例子,一个是匹配电话号码,另一个是验证电子邮件地址格式。
摘要由CSDN通过智能技术生成

正则表达式

正则表达式—通常用于判断语句中,用来检查某一字符串是否满足某一格式

  • 正则表达式是由普通字符与元字符组成
  • 普通字符包括大小写字母、数字、标点符号及一 些其他符号
  • 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式)在目标对象中的出现模式

基础正则表达式常见元字符:(支持的工具:grep、egrep、sed、awk)

元字符作用
\转义字符,用于取消特殊符号的含义,例如:\!、\n、$等
^匹配字符串开始的位置,例如:^a、 ^the、 ^#、 ^ [a-z]
$匹配字符串结束的位置,例如:word$、^ $匹配空行
.匹配除了\n之外的任意的一个字符,例如:go.d、g…d
*匹配前面子表达式0次或者多次,例如:goo*d、go.*d
[abcd]匹配abcd列表中的一个字符,例如:go[ola]d,[abc] 、[a-z]匹配任意一个数字
[^abcd]匹配任意非abcd列表中的一个字符,[^a-z] 匹配任意一位非小写字母
\ {n \ }匹配前面的子表达式n次,例如go \ { 2 \ }d 匹配出good
\ {n,\ }匹配前面的子表达式不少于n次,例如:go \ {2,\ }d 匹配good goood goooood等
\ {n,m\ }匹配前面的子表达式n到m次,例如:go\ {2,3\ }d 匹配good goood
\w匹配包括下划线的任何单词字符。\W:匹配任何非单词字符。等价于"[^A-Za-z0-9_]"
\d匹配一个数字字符。\D:匹配一个非数字字符。等级于[^0-9]
\s空白符。 \S:非空白符

注:egrep、awk使用{n}、{n,}、{n,m}匹配时"{ }“前不用加” \ "

扩展正则表达式元字符:(支持的工具:egrep、awk)grep -E sed -r

选项作用
+匹配前面子表达1次以上,例如:go+d ,将匹配至少一个o,如god、good、dooood等
匹配前面子表达0次或者1次,例如:go?d,将匹配gd或god
()将括号中的字符串作为一个整体,例如g(oo)d,将匹配整体1次以上,如good、gooood、gooooood等

|:以或的方式匹配字符串,例如:g(oo|la)d,将匹配good或glad

元字符用法:

\ 、^、$、.、*

在这里插入图片描述

go[oal]d 匹配[]中的一个字符

在这里插入图片描述

g[ ^ alo]d+d 这边加+是因为里面只会匹配一次加上+后匹配至少一次以上
在这里插入图片描述

匹配前面的子表达式o两次;匹配前面的子表达式o三次;匹配前面的子表达式o至少不小于3次;匹配前面的子表达式o2到5次
在这里插入图片描述

匹配包括下划线的任意单位字符
*表示0次或者多次
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实验例子1:
02588888888
025-5555555555
025 12345678
025 54321678
025ABC88888
025-85432109
028-85643210
0251-52765421
匹配出区号025开头,号码与区号间可以是空格、-、没有;号码必须是5或者8开头的八位数

在这里插入图片描述

实验例子2:
电子邮箱
用户名@子域名.[二级域名].顶级域

zhangsan123@qq.com
li_si@163.com
wang@wu@sina.com
zhao liu@126.com
qianqi@sina.com.cn

1.用户名@:长度要求在6-18位。任意大小写英文,任意数字,除了@符号和空格以外的其它任意符号字符,开头只能是 _ 下划线或者字母

2.子域名[二级域名]:长度任意,符号只能包含 - _ .

3.顶级域名:长度在2-5之间,任意大小写英文

要求完整匹配

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值