Linux扩展篇之Shell编程四(正则表达式入门)

这里写目录标题

  • 正则表达式
    • 1. 常规匹配
    • 2. 常用特殊字符
      • 2.1 特殊字符:^
      • 2.2 特殊字符:$
      • 2.3 特殊字符:.
      • 2.4 特殊字符:*
      • 2.5 字符区间:[ ]
      • 2.6 特殊字符:\
    • 3. 正则匹配手机号

正则表达式

  1. 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。
  2. 在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
  3. 在 Linux 中,grep, sed,awk 等文本处理工具都支持通过正则表达式进行模式匹配。

1. 常规匹配

一串不包含特殊字符的正则表达式匹配它自己,例如:

在这里插入图片描述

2. 常用特殊字符

2.1 特殊字符:^

^ 匹配一行的开头,例如:^a 会匹配出所有以 a 开头的行

在这里插入图片描述

2.2 特殊字符:$

$ 匹配一行的结束,例如:t$会匹配出所有以 t 结尾的行
在这里插入图片描述

思考:^$ 匹配什么?^kankan$呢?

答:^$匹配的是文本中所有的空行,^kankan$匹配的是以kankan开头和结尾的行,即该行只有kankan

Linux扩展篇之Shell编程四(正则表达式入门)_第1张图片
答:^kankan$匹配的是以kankan开头和结尾的行,即该行只有kankan

修改test.txt文件

kankan   hahahaha kankan
kankan

在这里插入图片描述

2.3 特殊字符:.

.匹配一个任意的字符,例如
在这里插入图片描述

2.4 特殊字符:*

* 不单独使用,他和上一个字符连用,表示匹配上一个字符 0 次或多次,例如
Linux扩展篇之Shell编程四(正则表达式入门)_第2张图片

2.5 字符区间:[ ]

[ ] 表示匹配某个范围内的一个字符,例如

[ ] # 表示匹配某个范围内的一个字符,例如 
[6,8] # 匹配 6 或者 8 
[0-9] # 匹配一个 0-9 的数字 
[0-9]* # 匹配任意长度的数字字符串 
[a-z] # 匹配一个 a-z 之间的字符 
[a-z]* # 匹配任意长度的字母字符串 
[a-c, e-f] # 匹配 a-c 或者 e-f 之间的任意字符 

Linux扩展篇之Shell编程四(正则表达式入门)_第3张图片

2.6 特殊字符:\

\ 表示转义,并不会单独使用。

由于所有特殊字符都有其特定匹配模式,当我们想匹配某一特殊字符本身时,就会碰到困难。

此时我们就要 将转义字符和特殊字符连用,来表示特殊字符本身,记得加单引号。例如

在这里插入图片描述

3. 正则匹配手机号

在这里插入图片描述

你可能感兴趣的:(Linux,正则表达式,linux,shell编程正则表达式)