快速学习正则表达式,不用死记硬背,示例让你通透(下篇)_快速学习正则表达式,不用死记硬背,示例让你通透(2)

–re- interval  命令行选项才能识别正则表达式间隔。

示例:

示例解读:

通过指定间隔为
1
,限定了该字符在匹配模式的字符串中出现的次数。如果该字符出现多次,

模式匹配就不成立。

同样也可以指定上限和下限

示例解读:

字符
e
可以出现
1
次或
2
次,这样模式就能匹配;否则,模式无法匹配。

下面是字符组的示例:

示例解读:

如果字母
a

e
在文本模式中只出现了
1~2
次,则正则表达式模式匹配;否则,模式匹配失败。

1.4 管道符号【|】

管道符号允许在检查数据流时,用逻辑
OR
方式指定正则表达式引擎要用的两个或多个模式。如果任何一个模式匹配了数据流文本,文本就通过测试。如果没有模式匹配,则数据流文本匹配失败。

使用格式:

expr1
|expr2|…

示例:

示例解读:

这个例子会在数据流中查找正则表达式
cat

dog
。正则表达式和管道符号之间不能有空格,

否则它们也会被认为是正则表达式模式的一部分。

管道符号两侧的正则表达式可以采用任何正则表达式模式(包括字符组)来定义文本。看下面示例:

示例解读:

这个例子会匹配数据流文本中的
cat

hat

dog

1.5 小括号()

正则表达式模式也可以用圆括号进行分组。当将正则表达式模式分组时,该组会被视为一个标准字符。可以像对普通字符一样给该组使用特殊字符。

示例:

示例解读:

结尾的
urday
分组以及问号,使得模式能够匹配完整的
Saturday
或缩写
Sat

将分组和管道符号一起使用来创建可能的模式匹配组是很常见的做法。如下示例:

示例解读:

模式
(c|b)a(b|t)
会匹配第一组中字母的任意组合以及第二组中字母的任意组合。

二、正则表达式实战示例

**示例1:**下面会有一个脚本,功能是对PATH环境变量中定义的目录里的可执行文件进行计数。

脚本内容如下:

#!/bin/bash 
# count number of files in your PATH 

mypath=$(echo $PATH | sed 's/:/ /g') #用空格来替换冒号,分割路径
count=0 
for directory in $mypath 
do 
 check=$(ls $directory) 
 for item in $check 
 do 
 count=$[ $count + 1 ] 
 done 
 echo "$directory - $count" 
 count=0 
done

执行结果:

示例2: 正则表达式解析邮件地址

邮件地址的基本格式为:username@hostname 
username值可用字母数字字符以及以下特殊字符:(点号、单破折线、 加号、 下划线)
在有效的邮件用户名中,这些字符可能以任意组合形式出现。邮件地址的hostname部分由一个或多个域名和一个服务器名组成。服务器名和域名也必须遵照严格的命名规则,只允许字母数字字符以及以下特殊字符:(点号、下划线)
服务器名和域名都用点分隔,先指定服务器名,紧接着指定子域名,最后是后面不带点号的
顶级域名。
顶级域名的数量在过去十分有限,正则表达式模式编写者会尝试将它们都加到验证模式中。
然而遗憾的是,随着互联网的发展,可用的顶级域名也增多了。这种方法已经不再可行。
从左侧开始构建这个正则表达式模式。

过滤用户名中表达式模式。

^([a-zA-Z0-9_-.+]+)@

这个分组指定了用户名中允许的字符,加号表明必须有至少一个字符。下一个字符很明显是@。

hostname模式使用同样的方法来匹配服务器名和子域名:

([a-zA-Z0-9_-.]+)

顶级域名用的正则表达式模式:

.([a-zA-Z]{2,5})$

整体组合模式:

^([a-zA-Z0-9_-.+]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

封装到脚本中:

cat****isemail.sh

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

200)]
[外链图片转存中…(img-JNSgsYWD-1714799590201)]
[外链图片转存中…(img-HEyD3eOk-1714799590201)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值