Shell之(正则表达式)

目录

一、正则表达式的概括

常用选项 

 基础正则表达式

查看以xxx为开头    查看以xxx为结尾的文件内容 

匹配单个或多个字符 

 匹配中括号里的内容

 对子表达式进行多次或者限定次数的匹配 

拓展正则表达式的基本用法 

扩展元字符

+ 匹配+前面的字符或表达式至少1次(大于等于1次{1,})

? 匹配?前面的字符或表达式0次或1次({0,1})

()  将()里面的表达式作为一个整体 

| 以或的方式匹配字符串 


一、正则表达式的概括

正则表达式是由普通字符与元字符组成:

  • 普通字符 包括大小写字母、数字、标点符号及一些其他符号
  • 元字符 是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式)在目标对象中的出现模式
  • 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式)在目标对象中的出现模式.

通配符:作用范围 匹配文件/目录名

正则表达式:匹配文件内容,用于精确筛选信息,可以配合grep,egrep,awk,sed命令进行搭配使用,查找时,也比通配符更加精确

常用选项 

 基础正则表达式

(支持的工具:grep、egrep、sed、awk) 

查看以xxx为开头    查看以xxx为结尾的文件内容 
[root@localhost ~]# grep '^1' zzz.txt   #过滤出1开头的

[root@localhost ~]# grep '3$' zzz.txt   #过滤出3结尾的 

匹配单个或多个字符 
[root@localhost ~]# grep 'q.e' 1.sh      #. 代表除了\n意外的任意字符

[root@localhost ~]# grep 'q.*e' 1.sh   #.* 匹配任意字符大于等于0次(这里代表q任意字符任意长度e)

 匹配中括号里的内容

[xxx]匹配中括号里的列表中的任意一个字符
 
[xxx]*匹配中括号里的列表中任意字符大于等于0次

[root@localhost ~]# grep "1[2]" 5.sh

[root@localhost ~]# grep "1[1234567890]" 5.sh

 

 [^xxx]匹配除了中括号里的列表中的任意一个字符
[^0-9]匹配所有非数字的字符 
[^a-zA-Z]匹配所有非大小写字母的字符

[root@localhost ~]# grep "[^24680]" 5.sh   #匹配除了中括号里的列表中的任意一个字符

 对子表达式进行多次或者限定次数的匹配 

\{n\}匹配{n}前面的字符或表达式 n 次;grep必须加\;egrep不用加\.

使用grep必须使用两个\\ 

[root@localhost ~]# grep "go\{2\}d" 5.sh

[root@localhost ~]# grep "go[ola]\{2\}d" 5.sh

 

 

\{n,\}匹配{n}前面的字符或表达式至少 n 次(>=n次)
 
\{n,m\} 匹配{n}前面的字符或表达式 n至m 次(大于等于n次且小于等于m次)
 
grep必须加\;egrep不用加\.

[root@localhost ~]# grep "go\{2,\}d" 5.sh    #最少匹配两次,包含两次

[root@localhost ~]# grep "go\{2,4\}d" 5.sh   #至少匹配两次,最多四次

 

拓展正则表达式的基本用法 

支持awk和egrep使用,如果grep和sed想要正常使用(grep -E  sed -r)

元字符作用含义
+匹配前面子表达式1次及以上
匹配前面子表达式0次或者1次
()将括号中的字符串作为一个整体
|以"或"的方式匹配字符串

使用egrep不用加反斜杠;egrep等于grep -E 

 

\w :匹配包括下划线的任何单词字符。
 
\W :匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
 
grep需搭配-P使用 

[root@localhost ~]# grep -P "go\wd" 5.sh

 

 \d :匹配一个数字字符。
 
\D :匹配一个非数字字符。等价于 [^0-9]。        
 
grep需搭配-P使用

 

\s :空白符。
 
\S :非空白符
 
grep需搭配-P使用 

[root@localhost ~]# grep -P "go\Sd" 5.sh

扩展元字符

(支持的工具:egrep、awk     )grep -E   sed -r

+ 匹配+前面的字符或表达式至少1次(大于等于1次{1,})
[root@localhost ~]# grep -E "go+d" 5.sh

[root@localhost ~]# grep -E "go{1,}d" 5.sh

 

? 匹配?前面的字符或表达式0次或1次({0,1})
[root@localhost ~]# grep -E "goo?d" 5.sh

[root@localhost ~]# grep -E "goo{0,1}d" 5.sh

 

()  将()里面的表达式作为一个整体 
[root@localhost ~]# grep -E "g(oo)*d" 5.sh

| 以或的方式匹配字符串 
[root@localhost ~]# grep -E "g(oa|ol|la|oo)d" 5.sh

  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell在线正则表达式生成器是一种工具,用于帮助用户快速生成符合正则表达式语法规则的表达式。用户可以通过在网页上输入所需匹配的文本样本,并通过选择不同的选项配置正则表达式的规则。生成器会根据用户输入的数据和选项,实时生成匹配模式,并显示在网页上供用户使用和测试。 这个在线生成器的优势是,节省了用户手动编写正则表达式的时间和精力,尤其对于不熟悉正则表达式语法的用户来说,更易于使用。用户只需要了解自己要匹配的文本样本的特点,并根据需要选取合适的选项,即可得到一个准确的正则表达式。 在生成器的界面上,通常会提供一些高级选项,如忽略大小写、多行匹配等,方便用户根据具体的需求进行定制。此外,还会根据用户输入的样本,实时给出匹配的示例,帮助用户理解和验证表达式的效果。 Shell在线正则表达式生成器在很多场景下都有用武之地。例如,在数据处理或文本分析中,我们经常需要对大量文本进行筛选、提取或替换操作。正则表达式可以提供强大的模式匹配能力,可以快速高效地处理各种文本情况。通过使用这个在线生成器,用户可以更加方便地生成所需的正则表达式,提高工作效率和准确性。 总而言之,Shell在线正则表达式生成器是一个便捷的工具,它可以帮助用户快速生成符合正则表达式语法规则的表达式,并提供实时的匹配示例。在数据处理和文本分析中使用它,可以节省时间、提高效率,并帮助用户更好地理解和应用正则表达式

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值