shell基础的正则表达式

本文详细介绍了Shell中的正则表达式,包括基础表达式、转义符、范围匹配、单词边界等,并通过实例解析了各种操作。掌握这些知识能帮助你更有效地在Shell中进行字符串匹配和处理。
摘要由CSDN通过智能技术生成

什么是正则表达式

正则表达式是使用某种模式去匹配字符串的一种公式,是由一串字符和元字符构成的字符串

1.基础的正则表达式

表达式 作用
.(句点) 匹配换行符(\n\r)意外任意的字符
* 后面有0个或多个,重复匹配*号前面的字符
{m,n} mn均为非负整数,其中m<=n。大小匹配1此,最大匹配n次
^ 以…开头,标识从字符串首位匹配,书写时必须写在首位,否则匹配为空
$ 以…结尾, 标识从字符串末尾匹配,书写时必须写在末尾,否则匹配为空
[] 字符集范围,[0-9]数字 [a-z]字母 [A-Z]大写字母
\b 边界匹配
\B 非单词边界匹配 与\b相反
\w 字母数字下滑线
\W 非字符 非数字 非下滑线
\s 匹配任何空白字符
\S 匹配任何非空白字符
.(句点 匹配换行符(\n\r)意外任意的字符
? 匹配前一个字符0次或者1次
+ 匹配前一个字符1次或者多次
() 分组
| 或(相当于or)可以与()连用,(ab|cd)指匹配 ab 或者cd 两个字段

2.实列

关于转义符 \

转义符如果后面跟元字符,那么元字符就会失去它代表的特殊含有,变为普通字符,
后面跟普通字符,会实现特殊含含义

#如这里不加/,n只是一个普通字符
[root@VM-20-14-centos ~]# echo -e "anb"
anb
#加了反斜杠以后,\n就成了换行符
[root@VM-20-14-centos ~]# echo -e "a\nb"
a
b

这一点在正则里面也是适用的, 当我们在" " 里面实现正则时,有时也要使用反斜杠来使他们生效,下面的实例就有用到这种情况
如"{m,n}" 在引号里面实现功能还要加上\ “{m,n}”

1. 英文句点(.)
  1. .(句点) 匹配换行符意外所有的字符,单独使用表示可以匹配所有
  2. 与其他字符联合时,则会关联其他字符一起匹配
  3. 单纯的匹配点,要加中括号 [.]
[root@VM-20-14-centos ~]# cat > test
[root@VM-20-14-centos ~]# cat > test
oh
oooh
oooooh

hh
...
hhhhhh
123456
abc:/c/d
banana
apple
PYTHON
  yilushen  
(1)匹配换行符意外所有的字符
[root@VM-20-14-centos ~]# grep . test    
oh
oooh
oooooh
hh
...
hhhhhh
123456
abc:/c/d
banana
apple
PYTHON
(2)与其他字符联合时,则会关联其他字符一起匹配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值