Linux学习系列--正则表达式的元字符和通配符学习

正则表达式的应用是在Linux文本做查找的时候,相当于Ctrl+F的查找功能,他是由一串字符和元字符组合而成的字符串。
在开发中,经常使用到一些正则表达式,用来进行匹配相应的字符串

元字符

1、任一单字符: “.”
点字符串可以匹配任一一个字符,但是不能匹配换行符,一个点只能匹配一个字符,示例 grep 'r..t' /etc/passwd
2、“ * ” 星号
星号可以直接匹配前的一个0次或者任意多次,可以和点符号一起使用 ,“ .* ”代表任意长度的不包含换行的字符。
3、“ {n,m} ”符号
使用“{n,m}”符号则能更加灵活地控制字符的重复次数,{n} 匹配前面的字符n次,{n,} 匹配前面的字符至少n次以上(含n次),{n,m} 匹配前面的字符n到m次
案例 [root@localhost ~]# grep 'ro\{0,\}t'[root@localhost ~]# grep 'ro\{0,\}t'

4、“^”符号

这个尖角号,用来匹配开头的符号,如想要查询以root开头的就可以使用 grep '^root' /etc/passwd

5、“$”符号

这是表示以某个符号作为结尾的,可以和尖角号一起使用,可以查看以某个字符开头和以某个字符结尾的文本。“^ ”这个是特殊的,表示这个行为空。 ‘ g r e p ′ r . ∗ h ”这个是特殊的,表示这个行为空。`grep '^r.*h 这个是特殊的,表示这个行为空。grepr.h’ /etc/passwd`

6、“[]”符号

这个是匹配在方括号中出现的任意一个字符。就可以是匹配ABCD的任意一个 [ABCD] ,匹配所有的字母,中间的-是限定范围的意思[A-Za-z] , 匹配不属于ABCD的字符 [^A-D] ,手机号规则^1[358][0-9]\{9\}

7、“\”符号

这是一个转义字符,比如说是在任意长度的匹配 \.* ,转义\字符就是\\, 范围限定的-修改为区号中的分隔号[\ \-]

8、"\<“ 和"\>"边界符号
这两个符号是左右边界的符号,能够实现一个精准的匹配的功能。“\<hello\>”可精确匹配单词hello,而不是helloworld相关的内容
此外可以使用的常用命令是可以参考的echo "hello" | grep '\<hello>\',这里的命令就是表示可以精准匹配hello

这几个是在实际中经常使用到的元字符,可以在一定程就能完成对工作的实现了

  • \d 匹配数字
    在匹配 数字的时候,可以使用的方式有两种,一种是常规的,一种是使用这里介绍echo 123 | grep [0-9]echo 123 | grep -p '\d'

  • \b 匹配单词边界 ,echo "hello world" | grep '\bhello\b'

  • \B 匹配非单词边界, echo "helloworld" | grep 'hello\B'

  • \w 匹配字母、数字、下划线,等价于[A-Za-z0-9] ,使用是echo "a" | grep '\w'

  • \W 匹配非数字、非字母、非下划线,等价于[^A-Za-z0-9]

\n 是匹配一个换行符
\r 匹配一个回车符
\t 匹配一个制表符。
\f 匹配一个换页符。
\s 匹配任何空白字符。
\S 匹配任何非空白字符。

通配符

通配符是一种特殊的语句,主要包含“*”号和“?”号(还有“{}”、“^”、“!”)
这些符号可以匹配多个文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值