linux之正则表达式的用法

一、正则表达式: 能用某种模式去匹配一类字符串的公式,由一串字符和元字符组成。

元字符: 表示的是一个单词开始或结束的位置。以下介绍一些比较常用的元字符.

1 “.” 符号
点符号用于匹配除换行符之外的任意一个字符。例如在/etc/passwd中搜索出包含r,紧跟着1个字符,后面再接t:
在这里插入图片描述
在/etc/passwd中搜索出包含r,紧跟着2个字符,后面再接t:
在这里插入图片描述

2. “*” 符号
"*"符号用于匹配前一个字符0次或任意多次。当与.符号一起用,例如 ".* "表示任意长度的不包含换行的字符。在/etc/passwd搜索 r*t
在这里插入图片描述
在/etc/passwd搜索 r.*t
在这里插入图片描述
3. “\{n,m\}” 符号
\{n,m\}精确控制匹配的重复次数,使用方法主要有三种:

  • \{n\}:匹配前面的字符n次.例如搜索ro\{2\}t
    在这里插入图片描述
  • \{n,\}:匹配前面的字符至少n次以此(包含n次).例如搜索ro\{1,\}t
    在这里插入图片描述
  • \{n,m\:匹配前面的字符n次到m次.例如搜索ro\{1,3\}t
    在这里插入图片描述

4. “^” 符号
尖角号符号用于匹配开头的字符。例如搜索^sy
在这里插入图片描述

5. “$” 符号
$符号用于匹配尾部,例如搜索以s开头,中间包含任意字符串,并以n结尾的
在这里插入图片描述
6. “[]” 符号
方括号:用于匹配方括号内出现的任一字符。例如:
在这里插入图片描述
也可写成以下方式,注意"-"不是充当一个字符。
在这里插入图片描述
若搜索所有字母也可写成[A-Za-z]。若匹配的不是大写的字母,则可以在方括号里使用^,代表取反。
在这里插入图片描述

7. “\” 符号
“\” 符号代表转义。例如.*代表的是任意长度的不包含换行的重复字符。但如果想要匹配任意长度的点号,则需要写成\.*

8. “\<“和”\>” 符号
"\<“和”\>“分别用于界定单词的左边界和右边界。比如说用”<hello"用以匹配以hello开头的单词;比如说用"hello>"用以匹配以hello结尾的单词。两个一起使用用于精确匹配一个字符串。例如:

[root@node1 etc]# echo 'helloworld' | grep '\<hello\>'
[root@node1 etc]# echo 'hello' | grep '\<hello\>'
hello

二.扩展的正则表达式
扩展的正则表达式是对基础正则表达式的一些补充。但需要注意的是使用这些扩展的符号时,需要使用egrep命令。例如:

  • “?”: 用于匹配前一个字符0次或者1次
  • “+”: 用于匹配前一个字符1次以上
  • “|”:'表达或的意思,即多种可能的罗列,彼此间是一种分支关系
  • “()”: 通常和"|"符号联合使用,用于枚举一系列可替换的字符。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

永远不要矫情

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

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

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

打赏作者

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

抵扣说明:

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

余额充值