前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >LinuxShell正则表达式

LinuxShell正则表达式

作者头像
hotarugali
发布2022-02-28 19:09:32
发布2022-02-28 19:09:32
31300
代码可运行
举报
运行总次数:0
代码可运行

1. 简介

正则表达式在处理数据时非常有用,它凭借强大的模式匹配功能,能够用来精确地过滤文本数据,提取有用的数据信息。

代码语言:javascript
代码运行次数:0
复制
graph LR
A[数据流 ]--> B{正则表达式}
B --> C[匹配数据]
B --> D[滤出数据]

正则表达式是通过正则表达式引擎实现的,正则表达式引擎负责解释正则表达式模式并使用这些模式进行文本数据匹配。在Linux中,主要有两种主流正则表达式引擎:

  • POSIX 基础正则表达式(basic regular expression,BRE)引擎 。
  • POSIX 扩展正则表达式(extended regular expression,ERE)引擎 。

2. BRE 模式

2.1 基本原则

  • 正则表达式模式都区分大小写。
  • 在正则表达式中,空格和其他的字符没有什么区别。
  • 特殊字符不能在文本模式中单独使用,要使用特殊字符作为文本字符必须用 \ 进行转义。

2.2 特殊字符

【注】虽然 / 不是特殊字符,但在sed、gawk编辑器的正则表达式中同样需要使用 \ 进行转义。

2.3 特殊字符组

特殊字符组

功能

[[:alpha:]]

匹配任一字母字符(不区分大小写)

[[:alnum:]]

匹配任一字母、数字字母(0~9、A~Z、a~z)

[[:blank:]]

匹配空格或者制表符

[[:digit:]]

匹配0~9间的任一数字

[[:lower:]]

匹配任一小写字符a~z

[[:print:]]

匹配任一可打印字符

[[:punct:]]

匹配任一标点符号

[[:space:]]

匹配任一空白字符(空格、制表符、NL、FF、VT、CR)

[[:upper:]]

匹配任一大写字符A~Z

3. ERE 模式

ERE 模式在 BRE 模式的基础上扩展了一些额外功能。

3.1 额外特殊字符

特殊字符

名称

功能

?

问号

匹配问号前的字符0次或1次

+

加号

匹配加号前的字符1次或多次

{ }

花括号

限定花括号前的字符重复出现次数{m}:准确出现 m 次{m,n}:至少出现 m 次、至多 n 次

|

管道符

用逻辑 OR 方式连接左右两个模式(至少匹配二者中的一个)

( )

圆括号

包括的模式组将被视为一个标准字符看待

4. 附录

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 简介
  • 2. BRE 模式
    • 2.1 基本原则
    • 2.2 特殊字符
    • 2.3 特殊字符组
  • 3. ERE 模式
    • 3.1 额外特殊字符
  • 4. 附录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档