Shell编程——正则表达式(八)

本文详细介绍了正则表达式中的各种符号和概念,包括点号、字符集、范围、单词定义、行首行尾匹配、转义字符、重复匹配、分支和逆向引用等,并以egrep为例,展示了这些符号在实际应用中的使用。
摘要由CSDN通过智能技术生成

目录

♡♡1 在正则表达式中,以下符号的含义

♡♡2 ​​​​子表达式(分组):用括号限定

♡♡​​​​3 分支:以“|”竖线表示,或者

♡​​​​​​​♡​​​​4 逆向引用 \


示例: 

egrep的全拼:extended regular expression 扩展的正则表达式

♡♡1 在正则表达式中,以下符号的含义

1、句点“.”用于匹配除换行符之外的任意一个字符

2、 “[]”用于指定一个字符集,从中匹配其中一个字符

比如:只能匹配ab或c

[abc]

3、“-”描述一个范围,例子:可以匹配所有的英文字母

[a-zA-Z]

4、“\<”和“\>”匹配一个单词

示例:

 在正则表达式中对单词的定义是:指两侧非单词字符分隔字符串

非单词字符指的是字母、数字、下划线以外任何字符

5、“^”和“$”用于匹配行首和行尾  

^a[a-z]y$ #匹配所有以a开头、y结尾、a和y之间包含小写字母的行

6、字符转义“\”,匹配特殊字符,如“\.”,“\[”

7、 ​​​​用户有时候希望某个字符能够不止出现一次,下面是用于重复匹配的符号

*重复0次或更多次
+重复一次或更多次
重复0次或1次
{n}重复n此
{n,}重复n次或更多次
{n,m}重复不少于n次,不多于m次

8、​​​​​反义:“^”表示除了这个字符,其他都可以,例如

[^wer] #表示匹配除了w/e/r的所有字符

♡​​​​​​​♡2 ​​​​子表达式(分组):用括号限定

示例:

去掉括号的话:

♡​​​​​​​♡3 ​​​​分支:以“|”竖线表示,或者

1、^h|t$ #匹配以h开头或者t结尾的字母

2、Jan(uary| |\.)
#分支元字符“|”分隔了三个字符串,分别是uary、空格、句点
#这意味着January或Jan或Jan.这样的字符串都能被匹配。

 

♡​​​​​​​♡​​​​4 逆向引用 \

子表达式中捕获的内容可以在正则表达式中其他地方使用。例子:

(\<.*\>).?( )*\1

#(\<.*\>)——匹配任意长度的单词,第一个子表达式
#.?——匹配0个或1个标点符号
#( )*——匹配0个或多个空格,第二个子表达式
#\1——指代第一个子表达式匹配到的模式,如果第一个子表达式匹配到的单词是dog,这里也自动成为dog

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼2333号程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值