shell脚本基础3——正则表达式

news2024/11/28 11:36:55

文章目录

  • 一、基本了解
  • 二、基本正则表达式
    • 2.1 字符匹配
    • 2.2 位置锚定
    • 2.3 匹配次数
    • 2.4 分组
  • 三、扩展正则表达式
    • 3.1 字符匹配
    • 3.2 位置锚定
    • 3.3 匹配次数
    • 3.4 分组
    • 3.5 或者

一、基本了解

  • 正则表达式分2种:基本正则表达式和扩展正则表达式。
  • grep 、sed命令使用正则较多,可以在命令行、脚本中使用进行命令替换和查找。
  • 一般都是使用扩展正则,grep命令指定-E参数使用扩展正则,sed命令只用-r或-E参数使用扩展正则。

二、基本正则表达式

2.1 字符匹配

表达式释义
点号.匹配任意单个字符
[],中括号匹配指定范围内的任意单个字符
[^]^取反,匹配指定范围外的任意单个字符

1.使用.匹配单个字符,一个点号代表一个字符。

在这里插入图片描述

2.使用[]匹配范围内的任意单个字符。

在这里插入图片描述
3.[^]匹配范围之外的任意单个字符。

在这里插入图片描述

2.2 位置锚定

表达式释义
^锚定行首,此字符后面的任意单个字符必须出现在行首
$锚定行尾,此字符前面的任意单个字符必须出现在行尾
^$空白行,以什么开头和什么结尾精确匹配
\ <或 \b锚定词首,其后面的任意单个字符必须作为单词首部出现
\ >或\b锚定词尾,其前面的任意单个字符必须作为单词尾部出现
\b \b精确匹配

1.锚定行首。

在这里插入图片描述
2.锚定行尾。

在这里插入图片描述
3.取文件空白行。

在这里插入图片描述
4.锚定词首。

在这里插入图片描述
5.锚定词尾。

在这里插入图片描述
6.精确匹配。

在这里插入图片描述

2.3 匹配次数

表达式释义
*匹配其前面的任意单个字符任意次
.*任意长度的任意字符(全部)
\?匹配其前面的任意单个字符1次或0次
\+匹配其前面的任意单个字符至少1次
\{m,n\}匹配其前面的任意单个字符至少m次,至多n次

1.使用*匹配其前面的任意单个字符任意次。
在这里插入图片描述
2.使用.*匹配所有内容。
在这里插入图片描述

3.匹配其前面的任意单个字符1次或0次
在这里插入图片描述
4.匹配其前面的任意单个字符至少1次
在这里插入图片描述

5.匹配其前面的任意单个字符至少m次,至多n次
在这里插入图片描述

2.4 分组

表达式释义
\(\)把括号当成一个整体
\1向后引用,引用第一个左括号以及与之对应的右括号所包括的所有内容
\2向后引用, 引用第二个左括号以及与之对应的右括号所包括的所有内容

1.把括号当成一个整体匹配。

在这里插入图片描述

三、扩展正则表达式

3.1 字符匹配

  • 书写格式与普通正则完全一样。
表达式释义
点号.匹配任意单个字符
[],中括号匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符

3.2 位置锚定

  • 书写格式与普通正则完全一样。
表达式释义
^锚定行首,此字符后面的任意单个字符必须出现在行首
$锚定行尾,此字符前面的任意单个字符必须出现在行尾
^$空白行,以什么开头和什么结尾精确匹配
\ <或 \b锚定词首,其后面的任意单个字符必须作为单词首部出现
\ >或\b锚定词尾,其前面的任意单个字符必须作为单词尾部出现
\b \b精确匹配

3.3 匹配次数

表达式释义
*匹配其前面的任意单个字符任意次
.*任意长度的任意字符(全部)
?匹配其前面的任意单个字符1次或0次
+匹配其前面的任意单个字符至少1次
{m,n}匹配其前面的任意单个字符至少m次,至多n次

1.匹配其前面的任意单个字符1次或0次
在这里插入图片描述

2.匹配其前面的任意单个字符至少1次
在这里插入图片描述

3.匹配其前面的任意单个字符至少m次,至多n次
在这里插入图片描述

3.4 分组

表达式释义
()把括号当成一个整体
\1反向引用,引用第一个左括号以及与之对应的右括号所包括的所有内容
\2反向引用, 引用第二个左括号以及与之对应的右括号所包括的所有内容

1.反向引用。

在这里插入图片描述

3.5 或者

表达式释义
|或者or,默认匹配|的整个左侧或者整个右侧的内容

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考A计划-系统架构师-官方考试指定教程-(9/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

spiderflow的初步使用

1、简介 spider-flow 是一个爬虫平台&#xff0c;以图形化方式定义爬虫流程&#xff0c;无需代码即可实现一个爬虫 官网地址&#xff1a;https://www.spiderflow.org/ 2、spiderflow的初步使用 2.1拉取&#xff0c;配置和启动 从gitee上拉取 执行db里面的sql 里面会有6张表 …

为什么说高性能计算工程师越老越吃香?还难以被AI替代?

一般越老越吃香的岗位或者行业&#xff0c;一定是拥有无法或者难以轻易被替代的经验。 这些经验一般是靠时间、靠思维、靠试错不断积累起来的。然而AIGC来了&#xff0c;好像宣布AI会取代所有人一样&#xff0c;如经验丰富的律师、医生、教师等等&#xff0c;尤其是贡献了AIGC…

java ssm贸易平台-物流管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java ssm贸易平台-物流管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主…

【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)

本篇文章依托kod可道云项目继续介绍阿里云产品&#xff0c;介绍DNS解析&#xff0c;CDN缓存&#xff0c;Web应用防火墙&#xff0c;弹性伸缩。 DNS解析 这里我将二级域名设为kod&#xff0c;一般都是设为www和&#xff0c;带表示可以不加二级域名&#xff0c;直接访问。也可以…

基于html+css的图展示117

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Java 八股文-集合框架篇

Java 集合框架 一、常见集合 1.说说有哪些常见集合&#xff1f; 集合相关类和接口都在java.util中&#xff0c;主要分为3种&#xff1a;List&#xff08;列表&#xff09;、Map&#xff08;映射&#xff09;、Set(集)。 其中Collection是集合List、Set的父接口&#xff0c…

AI热度降温?揭秘加德纳技术成熟度曲线与AI发展阶段

一文解决你所有对 AI 的焦虑 近期&#xff0c;我们发现ChatGPT的热度似乎不如前几个月。许多人尝试了这个技术&#xff0c;觉得它非常强大&#xff0c;但似乎与自己的日常生活和工作关系不大&#xff0c;因此逐渐失去了兴趣。 然而&#xff0c;这实际上是技术发展的正常周期&…

学术界用ChatGPT写论文,真的靠谱吗?

写论文时&#xff0c;赵铭用ChatGPT查询了国内外云计算技术的研究进展&#xff0c;并请它一一详细介绍。他用搜索引擎简单核实了真实性&#xff0c;润色后就放进了论文中&#xff0c;“我感觉它说的东西都是一些现状&#xff0c;也没什么好调整的&#xff0c;就直接用了&#x…

传感器-陀螺仪芯片

https://www.cnblogs.com/tomatokely/p/16392997.html 陀螺仪芯片厂家&#xff1a; ST ICM42605, MPU 6050, Murata SCL3300/3400 陀螺仪可选量程&#xff1a; 15.6/31.2/62.5/125/250/500/1000/2000 dps 加速度可选量程&#xff1a; 2/4/8/16 g 计算单位&#xff1a; 陀…

vue安裝及配置 nodejs安装配置

vue安装及配置 vue安装步骤 nodejs安装 安装nodejs环境&#xff1a;https://nodejs.org/en/ 查看node版本&#xff1a;node-v vue3.0需要使用node 8版本以上 npm镜像配置 npm是nodejs内置的资源管理器 npm两个镜像&#xff1a; 淘宝镜像&#xff1a;https://registry.npm.…

Mars3d的PolygonEntity的边框宽度outlineWidth只能是1

1.Mars3d的PolygonEntity的边框宽度只能是1 2.问题来源&#xff1a; 尝试在Mars3d官网的面的示例中修改高亮样式是&#xff0c;发现修改边框宽度为3或者是10&#xff0c;效果一致 function addDemoGraphic4(graphicLayer) { const graphic new mars3d.graphic.PolygonEntit…

车载以太网网络管理之UDPNM

前言 首先&#xff0c;请问大家几个小小问题&#xff0c;你清楚&#xff1a; 你知道UdpNm模块的主要作用是什么吗&#xff1f;UdpNm模块与其他AUTOSAR基础软件模块交互关系&#xff1b;UdpNm模块的网络管理算法&#xff0c;状态机如何运转&#xff1f;UdpNm模块的PNC功能如何…

TLE4250-2G-ASEMI代理英飞凌汽车芯片TLE4250-2G

编辑&#xff1a;ll TLE4250-2G-ASEMI代理英飞凌汽车芯片TLE4250-2G 型号&#xff1a;TLE4250-2G 品牌&#xff1a;Infineon(英飞凌) 封装&#xff1a;SCT-595-5 特性&#xff1a;驱动芯片、汽车芯片 温度范围-40C~150C 最大输入电压&#xff1a;-42 V~45 V TLE4250-2G…

跨境电商app系统开发

近年来&#xff0c;随着跨境电商行业的发展&#xff0c;越来越多的企业开始关注跨境电商app系统的开发。这些系统可以帮助企业更加高效地管理跨境电商业务&#xff0c;提高产品销售的效率&#xff0c;并且为消费者提供更加方便快捷的购物体验。 跨境电商app系统的开发需要考虑…

品牌618如何宣传,才能为业绩加油助力?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体 胡老师。 随着618年中消费季的临近&#xff0c;许多企业和品牌都已经卯足了马力&#xff0c;争取在年终狂欢中多多增加公司业绩&#xff0c;现在的618 不仅仅涉及我们的吃穿用行&#xff0c;而且各…

计算机网络开荒2.2-Socket编程

文章目录 一、Socket概述二、Socket API 概述三、WinSock常用API3.1 常用API3.1.1 WSAStartUP3.1.2 WSACleanup3.1.3 Socket3.1.4 Closesocket3.1.5 bind3.1.6 listen3.1.7 connect3.1.8 accept3.1.9 send, sendto3.1.10 recv, recvfrom3.1.11 etsockopt, getsockopt 3.2 网络字…

H3C 交换机的VXLAN二层转发配置

H3C 交换机的VXLAN二层转发配置 本篇介绍H3C交换机的VXLAN二层转发配置。 基本概念: 首先了解VXLAN&#xff08;Virtual eXtensible LAN&#xff0c;可扩展虚拟局域网络&#xff09;的基本概念。VXLAN是基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术。VXLAN可以基于…

Vue.js 中的 v-bind 指令详解

Vue.js 中的 v-bind 指令 介绍 Vue.js中的v-bind指令是一种将组件的属性绑定到Vue实例的数据的方式。v-bind指令可以用于将任何组件属性绑定到Vue实例的数据上&#xff0c;例如class、style、属性等。v-bind指令允许我们动态地设置组件的属性&#xff0c;从而使组件更加灵活和…

案例精述丨Fortinet SASE 护航跨国公司中国区网络安全升级

在全球数字化转型大潮下&#xff0c;跨国公司的机构、设施、人员等全球分布式特性&#xff0c;不但带来了广域网建设的网络复杂性&#xff0c;也带来了更加严峻的安全挑战。某全球知名跨国公司&#xff0c;在中国区进行网络安全升级改造的过程中&#xff0c;采用国内某IDC运营商…