Shell 编程-正则表达式 RE 详解

今天给伙伴们分享一下Shell 编程-正则表达式 RE,希望看了有所收获。

我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!

如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。

1、正则表达式应用环境

  • 重要的文本处理工具:vim、sed、awk、grep

  • 各种语言和应用程序: mysql、oracle、php、python、Apache、Nginx …

2、什么是正则表达式

  • 正则表达式(Regular Expression,通常简称为 regex 或 RE)是一种字符表达方式,可以用它来查找匹配特定准则的文本。在许多编程语言中都有用到正则表达式,常用它来实现一些复杂的匹配。这里简单介绍一下 shell 中常用到的一些正则表达式。

  • 正则表达式是对字符串进行操作的一种逻辑公式,即用事先定义好的的一些特定字符以及这些特定字符的组合,组成一个有一定规则的字符串(Regular Expression),使用这个有一定规则的字符串来表达对字符串的一种过滤逻辑。正则表达式被广泛应用于Linux和许多其他编程语言中,而且不论在哪里,其基本原理都是一样的。

  • 正则表达式是由两个基本组成部分所建立:一般字符与特殊字符。一般字符是指没有任何特殊意义的字符;特殊字符,常称为元字符 (metacharacter),或 meta 字符,正则表达式将匹配被查找行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念。在某些情况下,特殊字符也可被视为一般字符(使用转义符 \ 进行转义)。

  • POSIX 有两种风格的正则表达式,基本正则表达式(BRE)和扩展正则表达式(ERE)。这两种风格的正则表达式在一些字符含义上有细微的差距。以常用的 grep 指令来说,grep 指令默认支持的是 BRE,若要使用 ERE 进行匹配,可以使用 -E 选项,接下来的例子中均使用 grep 指令来演示正则表达式的使用。

  • re 正则体现式用一种字符表示一类相似的其他字符,用字符(正则字符)表示字符(英文字符,数字,特殊符号。。),不是一对一表示 ,用一个字符可以表示一类或者有相同属性或者模式的字符 abc bcd aaaa == = [a-z]{1,8}

  • 正则表达式 Shell 使用场景

^[0-9]+$                                              123 456 5y7					# 匹配数字
[a-z0-9_]+@[a-z0-9]+\.[a-z]+	                      [email protected] 			# 匹配Mail
[0-9]{
   
    
    1,3}\.[0-9]{
   
    
    1,3}\.[0-9]{
   
    
    1,3}\.[0-9]{
   
    
    1,3}										# 匹配IP
   																				# 或
[[:digit:]]{
   
    
    

猜你喜欢

转载自blog.csdn.net/mohuanfenghuang/article/details/143422086