查看原文
其他

正则表达式(1)-基本正则表达式1

Cloud研习社 Cloud研习社 2023-06-06


每周二、四、六定期更新!


字符匹配



. 匹配任意单个字符
[]    匹配括号内的任意一个字符,例如: [jason]   [0-9]    [a-z]   [a-zA-Z]
[^]    匹配不包含括号内的任意一个字符。例如:[^jason]
[:alnum:]  代表英文大小写字母及数字,即 0-9, A-Z, a-z
[:alpha:]  代表任何英文大小写字节,即 A-Z, a-z
[:digit:]  代表数字而已,即 0-9
[:lower:]  代表小写字母,即 a-z
[:upper:]  代表大写字母,即 A-Z
[:blank:]  代表空白键与 [Tab] 按键两者
[:space:]  任何会产生空白的字节,包括空白键, [Tab], CR 等等


我们通过实例来看看:

实例1:查找j、a、s三个字符:

[root@studyclub jason]# pwd
/root/jason
[root@studyclub jason]# vim passwd
# 在vim的一般模式下,输入:
/[jas]
# “/”代表查找,[jas]代表匹配中括号里的任意一个字符


查找到的结果如下:

看截图,j字母、a字母、s字母都找出来了吧!
实例2:查找所有的字母
[root@studyclub jason]# vim passwd
# 在vim的一般模式下,输入:
/[[:alpha:]]
# “/”代表查找,[:alpha:]代表所有的字母,包括大小写。[:alpha:]外面的[]括号代表匹配任意一个括号内的字符。这种写法请特别注意。


查找到的结果如下:

上图显示,所有的字母都查找到了。
请自行练习上面讲到的字符匹配的其他几个匹配内容。


匹配次数


用来指定前面字符出现的个数。

* 匹配前面的字符任意次,包括0次
.* 任意长度的任意字符
\? 匹配前面的字符0次或1次
\+ 匹配前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次至多n次
\{,n\} 匹配前面的字符最多n次
\{n,\} 匹配前面的字符最少n次


实例1:查找连续多个o应该怎么写查找命令,要求至少有1个o。
# 在vim命令中,“/”为vim中的查找命令
/oo*


实例2:查找连续多个o应该怎么写查找命令,可以没有o。
# 在vim命令中,“/”为vim中的查找命令
/o*


实例3:查找"ho"和“e”之间有两个及以上m的字符串

# 我们先在文件中插入如下内容
[root@studyclub jason]# vim passwd
root:x:0:0:root:/root:/bin/bash
home
hommme
hoe
homme
hommmmmmmmme
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
......

# 输入查找命令以后回车
/hommm*e


查找结果如下:

小技巧:在查找连续多个字母的时候,如果连续查找N个字母,那我们我就写的时候就写N+1个字母然后写上星号“*”。
实例4:匹配0次或1次
# 把上面用过的文件加上一行:
root:x:0:0:root:/root:/bin/bash/

# 然后我们查找bash后面带有“/”的内容,在vim的一般模式下,输入
/bash\/\?
# 上面第一个'/'是vim一般模式下的查找命令,bash后的第一个"\"是转义符号,让其后的"/"变为普通符号


结果如下:

如果查找的时候我们用下面这个命令会有什么结果呢?
/bash/\?


实例5:至少匹配一次:


# 查找ho后面至少有一个m的字符串
# 还是用上面的passwd文件,用vim打开以后,一般模式下输入:
/hom\+


查找结果如下:

实例6:匹配前面的字符n次

# 匹配ho后面有6个m的字符串。我们还是用上面的文件。在vim的一般模式下输入
/hom\{6\}


上面这条命令就能匹配ho后面带有连续6个m的字符串。


其余几个匹配功能请自行练习。



手应知:

    尝鲜Rocky Linux

《Linux基础及进阶》:

    055 - Shell基础(7)-算术运算
   056 - Shell基础(8)-算术运算、条件判断1   057 - Shell基础(9)-条件判断2
   058 - Shell基础(10)-条件判断3
    059 - Shell基础(11)-关于shell语句中小括号()和大括号{}的作用


看完本文有收获?请分享给更多人


推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!

微信号|bjdream-1


Cloud研习社 · 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存