正则表达式

基本正则表达式

元字符

. 匹配任意单个字符

[root@localhost ~]# mkdir /temp
[root@localhost temp]# touch {1..9}
[root@localhost temp]# ls | grep '^.$'
1
2
3
4
5
6
7
8
9
#同理,两个点就是任意两个字符

[] 匹配指定范围内的任意单个字符

//匹配2,3,4
[root@localhost temp]# ls | grep '^[234]$'
2
3
4

//匹配2-6
[root@localhost temp]# ls | grep '^[2-6]$'
2
3
4
5
6
//当'-'在中括号开始和结尾处,表示'-'本身,例如
[root@localhost temp]# ls | grep '^[-26]$'
2
6
[root@localhost temp]# ls | grep '^[26-]$'
2
6
[root@localhost temp]# ls | grep '^[-26-]$'
2
6

[^] 匹配指定范围外的任意单个字符

//匹配2,6外的任意单个字符
[root@localhost temp]# ls | grep '^[^26]$'
1
3
4
5
7
8
9
//'^'必须在中括号的开始,否则表示'^'本身,例如
[root@localhost temp]# ls | grep '^[2^6^]$'
2
6

匹配次数(贪婪模式)

  • 匹配器前面的任意单个字符任意次(0到正无穷次)
//'*'前面的单个字符,也就是b,可以没有一次,也可以有任意次
[root@localhost temp]# ls | grep '^ab*c$'
abbbc
abc
ac
[root@localhost temp]# ls | grep '^ab*$'
a
ab
abb
abbb

.* 任意长度的任意字符

[root@localhost temp]# ls | grep '.*'
1
2
3
4
5
6
7
8
9
a
ab
abb
abbb
abbbc
abc
ac

? 匹配其前面任意单个字符0次或1次

[root@localhost temp]# ls | grep '^ab\?$'
a
ab
[root@localhost temp]# ls | grep '^ab\?c$'
abc
ac

+ 匹配其前面任意单个字符至少一次

[root@localhost temp]# ls | grep '^ab\+$'
ab
abb
abbb
[root@localhost temp]# ls | grep '^ab\+c$'
abbbc
abc

{m,n} 匹配其前面任意单个字符至少m次,至多n次

//匹配\{1,2\}前面的单个字符,也就是b,至少一次,至多2次
[root@localhost temp]# ls | grep '^ab\{1,2\}$'
ab
abb

//只匹配2次
[root@localhost temp]# ls | grep '^ab\{2\}$'
abb

//只匹配3次
[root@localhost temp]# ls | grep '^ab\{3\}$'
abbb

位置锚定

^ 锚定行首,此字符后面的任意单个字符必须出现在行首

[root@localhost temp]# touch jjabc aabc abccld

[root@localhost temp]# ls | grep '^a'
a
aabc
ab
abb
abbb
abbbc
abc
abccld
ac
[root@localhost temp]# ls | grep '^j'
jjabc

$ 锚定行尾,此字符前面的任意单个字符必须出现在行尾

[root@localhost temp]# ls | grep 'b$'
ab
abb
abbb
[root@localhost temp]# ls | grep 'c$'
aabc
abbbc
abc
ac
jjabc

^$ 空白行

[root@localhost temp]# cat > a << EOF
> hello world
>
> nihao shijie
> EOF
[root@localhost temp]# cat a
hello world

nihao shijie
//过滤文本中的空白行
[root@localhost temp]# cat a | grep -v '^$'     //-v是grep命令中取反的意思
hello world
nihao shijie

\

Original: https://www.cnblogs.com/zicnotes/p/16694722.html
Author: Zic师傅
Title: 正则表达式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607459/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 数据结构 图

    cpp;gutter:true;</p> <h1>include</h1> <p>using namespace std;</…

    Linux 2023年6月13日
    068
  • ssh 或 putty 连接linux报错解决方法

    由于当天多次输入错误密码,ssh和putty就连接不上了,纠结了很久解决问题 ssh连接提示错误:server unexpectedly closed network connec…

    Linux 2023年6月13日
    086
  • 搭建Nginx正向代理服务

    需求背景: 前段时间公司因为业务需求需要部署一个正向代理,需要内网服务通过正向代理访问到外网移动端厂商域名通道等效果,之前一直用nginx做四层或者七层的反向代理,正向代理还是第一…

    Linux 2023年6月8日
    090
  • Apache Shiro反序列化漏洞(Shiro550)

    1.漏洞原理: Shiro 是 Java 的一个安全框架,执行身份验证、授权、密码、会话管理 shiro默认使用了CookieRememberMeManager,其处理cookie…

    Linux 2023年6月13日
    068
  • NoteOfMySQL-08-视图

    视图是从一个表或多个表中导出的表,是一种虚拟存在的表,不占用存储空间。视图可以使用户的操作更方便,并且可以保障数据库系统安全性。 1. 视图概述 视图中保存的仅仅是一条select…

    Linux 2023年6月14日
    082
  • AOP+Redis+SpringCache翻译字典状态

    1,字典表Or枚举类? 项目里有很多标识状态的字段,比如订单状态:0-未支付,1-已支付,2-已取消。或者性别sex: 0-未知,1-男,2-女 。等等。一般这种我们都会建相应的枚…

    Linux 2023年5月28日
    0104
  • 网络设备配置–8、利用ospf配置动态路由

    一、前言 同系列前几篇:网络设备配置–1、配置交换机enable、console、telnet密码网络设备配置–2、通过交换机划分vlan网络设备配置&#8…

    Linux 2023年6月8日
    0101
  • openEuler 20.03/21.03 – 华为欧拉开源版(CentOS 8 华为版开源版)下载

    开始 openEuler 之旅吧 openEuler 通过社区合作,打造创新平台,构建支持多处理架构、统一和开放的操作系统,推动软硬件应用生态繁荣发展。 好玩的活动停不下来 ope…

    Linux 2023年5月27日
    0251
  • 良许跌宕起伏的2021年

    大家好,我是良许,前码农,现创业者。 时间飞逝,转眼就2021年年尾了,向各位「股东」们汇报一下良许的 2021 年。 公众号运营至今,每年我都会写年终总结,前三次总结给大家放在下…

    Linux 2023年6月14日
    0105
  • Mysql多实例搭建部署

    【部署背景】 公司测试环境需求多个数据库实例,但是只分配一台MySQL机器,所以进行多实例部署。 【部署搭建】 创建软件包路径 mkdir /data/soft/package /…

    Linux 2023年6月8日
    096
  • ASCLL 字符码

    信息在计算机上是用二进制数表示的,这种表示法让人很难理解。因此,计算机上都配有输入和输出设备,这些设备的主要目的就是以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为…

    Linux 2023年6月7日
    093
  • 其他

    1、【剑指Offer学习】【面试题01:实现赋值运算符函数】 2、【剑指Offer学习】【面试题02:实现Singleton 模式——七种实现方式】 5、【剑指Offer学习】【面…

    Linux 2023年6月13日
    076
  • Supervisor进程管理

    Supervisor 介绍 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它…

    Linux 2023年6月8日
    0113
  • Web开发静态资源处理

    Web开发静态资源处理 7.1 静态资源处理 我们要引入前端资源,项目中有许多的静态资源,比如css,js等文件,这个SpringBoot是怎么处理呢? 如果我们是一个web应用,…

    Linux 2023年6月14日
    0105
  • ssh远程连接服务

    TCP/22 SSH 应用层协议 作用:远程连接设备, 方便操作 1、本地管理方式 安装系统、故障修复 2、远程连接的方式 centos7.x版本中的ssh默认是开启的,所以查看一…

    Linux 2023年6月7日
    081
  • python串口助手

    最近项目中要使用模拟数据源通过向外发送数据,以前都是用C#编写,最近在研究python,所以就用python写了一个串口助手,方便以后的测试。 在电脑上通过虚拟串口助手产生两个虚拟…

    Linux 2023年6月14日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球