linux正则表达式教程,Linux 正则表达式基础

一、正则表达式简介

正则表达式是计算机科学的一个概念。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

摘自:维基百科

正则表达式在 Linux 系统中无处不在,日常使用的很多命令(如 grep、awk)也跟正则表达式脱不开关系。

正则表达式对于某些人来说确实难以理解。

我也只能说:多练吧!想学好的东西,一定可以学会的!

⚠️ 注意

在学习过程中,一定要区分好正则表达式与通配符的关系。千万不要弄混!

本文为个人学习笔记,仅供参考。如有错误请及时提出,谢谢!

二、正则表达式中的字符

正则表达式分为普通字符和元字符两种字符。

形如 a、b、1 这些字符均属于普通字符,只存在字面上的含义,没有隐含的意义。

为了方便大家理解,下文中的普通字符均使用空心 ◻︎ 或实心 ◼︎ 的小方格来表示。

元字符是指在正则表达式有着特别意义的字符,比如美元符号 $ 表示行尾。

如果需要把元字符当作普通字符来看,请在元字符前面加一个反斜杠 \( {、}、 除外)。

另外,在 SHELL 中使用正则表达式时,最好将正则表达式用单引号括起来,以免正则表达式中的某些字符被 SHELL 视为元字符而影响操作。

三、基本正则表达式

所有支持正则表达式的程序都兼容基本正则表达式。

正则表达式含义

◻︎

匹配 ◻︎ 本身

.

匹配任意一个字符

◻︎*

匹配任意多个 ◻︎ (包括 0 个)

[◻︎◼︎]

匹配 ◻︎ 或 ◼︎(字符集中的任意一个字符)

[^◻︎◼︎]

匹配除 ◻︎ 和 ◼︎(字符集中的任意一个字符)以外的任意一个字符

[A-Z]

匹配一个大写字母(小写字母、数字同理,也可取反)

^

匹配行首

$

匹配行尾

◻︎\{m\}

匹配 m 个 ◻︎

◻︎\{m,n\}

匹配 m 至 n 个 ◻︎

◻︎\{m,\}

匹配至少 m 个 ◻︎

\

精确匹配 ◻︎◼︎◻︎◼︎ 这个单词

代表性例子

正则表达式可匹配

gooo*gle

google、goooogle

c.t

cut、cat

aa.*bb

aabb、aavvsfbb

^$

一个空行

\

SSR

四、POSIX 标准正则表达式

POSIX 正则表达式用来匹配字符集中的其中一个字符,它主要用来消除不同字符编码之间的差异。

比如说某种字符编码,它的英文字符排序是 ABCDE...,那么此时可以使用 [A-Z] 来匹配任意一个大写字母。

那如果某种字符编码,它的英文字符排序是 AaBbCc...,那么此时想匹配一个大写字母就不能再使用 [A-Z] 了。

正则表达式含义

[[:alnum:]]

匹配一个数字或字母

[[:alpha:]]

匹配一个字母

[[:digit:]]

匹配一个数字

[[:upper:]]

匹配一个大写字母

[[:lower:]]

匹配一个小写字母

[[:blank:]]

匹配一个空格或 Tab

[[:print:]]

匹配一个可打印字符

五、扩展正则表达式

扩展正则表达式仅在部分程序中支持,例如 egrep、awk 等。

正则表达式含义

◻︎|◼︎

匹配 ◻︎ 或 ◼︎

◻︎?

匹配 0 个或 1 个 ◻︎

◻︎+

匹配至少 1 个 ◻︎

◻︎{m}

匹配 m 个 ◻︎

◻︎{m,n}

匹配 m 至 n 个 ◻︎

◻︎{m,}

匹配至少 m 个 ◻︎

(◻︎◼︎◻︎◼︎)

匹配 ◻︎◼︎◻︎◼︎ 这个字符串

代表性例子

正则表达式可匹配

A|B

BOO、AAB

goo+gle

google、goooogle

(SS)

SS、SSR

六、区分:通配符

这里说一下通配符的用法,大家好好区分一下。

通配符含义

*

匹配任意数量的任意字符

?

匹配 1 个 任意字符

[◻︎◼︎]

匹配 ◻︎ 或 ◼︎(字符集中的任意一个字符)

[^◻︎◼︎]

匹配除 ◻︎ 和 ◼︎(字符集中的任意一个字符)以外的任意一个字符

[A-Z]

匹配一个大写字母(小写字母、数字同理,也可取反)

{◻︎,◼︎}

匹配括号内 ◻︎ 和 ◼︎ (两个或多个字符串)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值