当前位置: 首页 > news >正文

Linux下的Shell编程——正则表达式入门(四)

前言:        

正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本

在Linux 中,grep,sed,awk 等文本处理工具都支持通过正则表达式进行模式匹配。

目录

一、常规匹配

二、常用特殊字符

(1)特殊字符:^

(2)特殊字符:$

(3)特殊字符:.

 (4)特殊字符:*

(5)字符区间(中括号):[ ]

(6)特殊字符:\


 

一、常规匹配

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

9aa7ad10acfb4672a3cadcc0073f6139.png

         会匹配所有包含 119的行。

二、常用特殊字符

(1)特殊字符:^

         ^ 匹配一行的开头,例如:

dd58d1169ae148b5a437b68343420807.png

        会匹配出所有以 a 开头的行

(2)特殊字符:$

        $ 匹配一行的结束,例如:

057a8e98243d4088870a41274a3bb72a.png

        会匹配出所有以 n结尾的行

(3)特殊字符:.

        . 匹配一个任意的字符,例如

9144e7d35c6a487cb9625f05228e2500.png

        会匹配包含 rabt,rbbt,rxdt,root 等的所有行

 (4)特殊字符:*

        * 不单独使用,他和上一个字符连用,表示匹配上一个字符 0 次或多次,例如

9bbdd33744fa4f1888d12477009e5e86.png

        会匹配 rt, rot, root, rooot, roooot 等所有行

(5)字符区间(中括号):[ ]

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

        [6,8]------匹配 6 或者 8

04094792ba2f4977891fb5b58ff3d07e.png

e22a74d2749844888485b9c28903ddf0.png

81137aa869de4a91b35d0382259f432e.png

        [0-9]------匹配一个 0-9 的数字

fd69170a4aae4a638798c6e5d6895256.png

        [0-9]*------匹配任意长度的数字字符串

ee2d1c7d5bef4d608546fc5ee0a5e3a6.png

        [a-z]------匹配一个 a-z 之间的字符

2de3eb1d5fe24b97a896161dd81ea6a7.png

        [a-z]* ------匹配任意长度的字母字符串

ccb2a37d93fc49ac8a3a031a76bc47eb.png

        [a-c, e-f]--------匹配 a-c 或者 e-f 之间的任意字符

20ff6da701ae4573aa7c9305e28162e8.png

        会匹配 rt,rat, rbt, rabt, rbact,rabccbaaacbt 等等所有行

(6)特殊字符:\

        \ 表示转义,并不会单独使用。由于所有特殊字符都有其特定匹配模式,当我们想匹配某一特殊字符本身时(例如,我想找出所有包含 '$' 的行),就会碰到困难。此时我们就要将转义字符和特殊字符连用,来表示特殊字符本身,例如

5a6bb0ddc73e4020b545ed5c38e80e10.png

就会匹配所有包含 a$b 的行。注意需要使用单引号将表达式引起来。

 

相关文章:

Linux下的Shell编程——正则表达式入门(四)

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

使用VisualStudio制作上位机(一)

文章目录 使用VisualStudio制作上位机(一)写在前面第一部分:创建应用程序第二部分:GUI主界面设计使用VisualStudio制作上位机(一) Author:YAL 写在前面 1.达到什么目的呢 本文主要讲怎么通过Visual Studio 制作上位机,全文会以制作过程来介绍怎么做,不会去讲解具体…...

【前端从0开始】JavaSript——自定义函数

函数 函数是一个可重用的代码块,用来完成某个特定功能。每当需要反复执行一段代码时,可以利用函数来避免重复书写相同代码。函数包含着的代码只能在函数被调用时才会执行,就可以避免页面载入时执行该脚本在JavaScript中,可以使用…...

如何在Windows、Mac和Linux操作系统上安装Protocol Buffers(protobuf)编译器

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

简单介绍 CPU 的工作原理

内部架构 CPU 的根本任务就是执行指令,对计算机来说最终都是一串由 0 和 1 组成的序列。CPU 从逻辑上可以划分成 3 个模块,分别是控制单元、运算单元和存储单元 。其内部架构如下: 【1】控制单元 控制单元是整个CPU的指挥控制中心&#xff…...

UE4/5数字人MetaHuman的控制绑定资产使用

目录 开始操作 找到控制绑定资产 放入控制绑定资产 ​编辑 生成动画资产 开始操作 首先我们创建一个关卡序列: 打开后将我们的数字人放进去【右键,第一个添加进去】: 我们会自动进入动画模式,没有的话,就自己…...

二、11.系统交互

fork 函数原型是 pid_t fork(void),返回值是数字,该数字有可能是子进程的 pid ,有可能是 0,也有可能是-1 。 1个函数有 3 种返回值,这是为什么呢?可能的原因是 Linux 中没有获取子进程 pid 的方…...

敏捷管理工具/国内软件敏捷开发工具

​Scrum中非常强调公开、透明、直接有效的沟通,这也是“可视化的管理工具”在敏捷开发中如此重要的原因之一。通过“可视化的管理工具”让所有人直观的看到需求,故事,任务之间的流转状态,可以使团队成员更加快速适应敏捷开发流程。…...

Selenium环境+元素定位大法

selenium 与 webdriver Selenium 是一个用于 Web 测试的工具,测试运行在浏览器中,就像真正的用户在手工操作一样。支持所有主流浏览器 WebDriver 就是对浏览器提供的原生API进行封装,使其成为一套更加面向对象的Selenium WebDriver API。 使…...

Vue3 用父子组件通信实现页面页签功能

一、大概流程 二、用到的Vue3知识 1、组件通信 (1)父给子 在vue3中父组件给子组件传值用到绑定和props 因为页签的数组要放在父页面中, data(){return {tabs: []}}, 所以顶部栏需要向父页面获取页签数组 先在页签页面中定义props用来接…...

HCIP STP协议

STP协议 STP协议概念生成树为什么要用STP STP名词解释根网桥根端口指定端口非指定端口 STP的版本802.1DPVSTPVST 快速生成树 STP协议概念 IEEE 802.1d STP(生成树协议,Spanning-Tree Protocol)协议: ①使冗余端口置于“阻塞状态”…...

链表的顶级理解

目录 1.链表的概念及结构 2.链表的分类 单向或者双向 带头或者不带头 循环或者非循环 3.无头单向非循环链表的实现 3.1创建单链表 3.2遍历链表 3.3得到单链表的长度 3.4查找是否包含关键字 3.5头插法 3.6尾插法 3.7任意位置插入 3.8删除第一次出现关键字为key的节点 …...

探索贪心算法:理解与实现JAVA语言

探索贪心算法:理解与实现 贪心算法(Greedy Algorithm)是一种基于每一步的最优选择来达到整体最优的算法思想。尽管贪心算法并不适用于所有问题,但它在很多情况下都能够提供高效、近似的解决方案。本文将深入探讨贪心算法的基本概…...

数字孪生技术对旅游行业能起到什么作用?

随着疫情对我们生活影响的淡化,旅游行业迎来了新的春天,暑期更是旅游行业的小高潮,那么作为一个钻研数字孪生行业的小白,本文就着旅游的话题以及对旅游的渴望带大家一起探讨一下数字孪生对智慧旅游发展的作用~ 数字孪生作为一种虚…...

攻防世界-Web_php_include

原题 解题思路 php://被替换了,但是只做了一次比对,改大小写就可以绕过。 用burp抓包,看看有哪些文件 flag明显在第一个PHP文件里,直接看...

Python Opencv实践 - 直方图显示

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) print(img.shape)#图像直方图计算 #cv.calcHist(images, channels, mask, histSize, ranges, hist, accumulate) #images&…...

2分钟搭建自己的GPT网站

如果觉得官方免费的gpt(3.5)体验比较差,总是断开,或者不会fanqiang,那你可以自己搭建一个。但前提是你得有gpt apikey。年初注册的还有18美金的额度,4.1号后注册的就没有额度了。不过也可以自己充值。 有了…...

deepdiff比较两个json文件数据差异性

deepdiff比较两个json文件数据差异性 Python代码片: import json import sysfrom deepdiff import DeepDiff from deepdiff import grep, DeepSearch from deepdiff import DeepHash# print(DeepDiff("abc", "abcd", ignore_orderTrue))class …...

文件内容搜索工具 - Python实现

在本篇文章中,我们将介绍如何使用 wxPython 库创建一个简单的文件搜索工具。这个工具允许用户选择一个文件夹,并在该文件夹中的所有 .py 文件中查找指定的文字,并显示匹配的位置。 C:\pythoncode\blog\searchwordinpyfile.py 代码实现 我们首…...

vue静态html加载外部组件

当我们在开发vue应用时, 使用的是html页面开发, 需要引用外部vue组件, 怎么办呢, 首先我们引用http-vue-loader.js文件, 像下面这样: <script src"/assets/javascript/vue.min.js"></script> <script src"/assets/javascript/http-vue-loader.j…...

WebSocket 中的心跳是什么,有什么作用?

在网络应用开发中&#xff0c;WebSocket 是一种重要的通信协议&#xff0c;它允许客户端和服务器之间建立持久性的双向通信连接。然而&#xff0c;为了保持连接的稳定性&#xff0c;WebSocket 中的心跳是一个不可或缺的概念。本文将详细介绍 WebSocket 中的心跳是什么&#xff…...

Android类加载机制

要说Android的类加载机制 &#xff0c;就离不开 类加载器ClassLoader&#xff0c;它是一个抽象接口 下面这个图还是比较好表达了类加载流程&#xff0c;但如果不看我红色画的线&#xff0c;就会感觉有点乱&#xff0c;需要注意是采用的是双亲委派模式&#xff0c;class加载要先…...

微信小程序列表加载更多

概述 基于小程序开发的列表加载更多例子。 详细 一、前言 基于小程序开发的列表加载更多例子。 二、运行效果 运行效果&#xff08;演示的小视频&#xff0c;点击播放即可&#xff09; 三、实现过程 总体思路如何&#xff1a; 1、通过scroll-view组件提供的bindscroll方法…...

数据库知识

怎么做 常见的数据库 Oracle Mysql SOLSever Navicat &#xff08;新版可以链接mysql oracle&#xff09; http://sqlfiddle.com/ 数据库操作在线练习 mysql自带四个数据库 数据库语言的使用 显示数据库&#xff1a;show databases&#xff1b; 创建数据库&#xff1a;…...

VUE 目录介绍

更新升级&#xff08;npm - i&#xff09;之后最终目录如下&#xff1a; total 1672 drwxr-xr-x 18 testrose staff 576 8 22 02:53 . drwxr-xr-x 24 testrose staff 768 8 22 02:50 .. -rw-r--r-- 1 testrose staff 402 8 22 02:52 .babelrc -rw…...

Selenium的基本使用

文章目录 引入一.选择元素的基本方法1.根据id 选择元素2.根据 class属性选择元素当元素有 多个class类型 时 3.根据 tag名 选择元素4.通过WebElement对象选择元素5.find_element 和 find_elements 的区别 二.等待界面元素出现1.隐式等待2.显示等待 三.操控元素的基本方法1.点击…...

数据结构-----树的易错点

1.树的度和m叉树 •度为m的树&#xff08;度表示该结点有多少个孩子&#xff08;分支&#xff09;&#xff09; 任意结点的度<m(最多m个孩子) 至少又一个结点度m(有m个孩子) 一定是非空树&#xff0c;至少有m1个结点 •m叉树 任意结点的度<m(最多有m个孩子) 允许所…...

写之前的项目关于使用git remote -v 找不到项目地址的解决方案

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、报错解析1. 报错内容2. 报错翻译3. 报错解析&#xff08;1&#xff09;使用git branch来查看git仓库有几个分支&#xff08;2&#xff09;使用git remote -v&am…...

STM32 F103C8T6学习笔记9:0.96寸单色OLED显示屏—自由取模显示—显示汉字与图片

今日学习0.96寸单色OLED显示屏的自由取模显示: 宋体汉字比较复杂&#xff0c;常用字符可以直接复制存下来&#xff0c;毕竟只有那么几十个字母字符&#xff0c;但汉字实在太多了&#xff0c;基本不会全部放在单片机里存着&#xff0c;一般用到多少个字就取几个字的模&#xff…...

直播平台源码搭建协议讲解篇:传输控制协议TCP

简介&#xff1a; 由于直播平台在当今时代发展的越来越迅速&#xff0c;使得直播平台的技术功能越来越智能&#xff0c;让用户在直播平台中能够和其他用户进行实时互动&#xff0c;让用户可以获取到全世界最新的资讯&#xff0c;让一些用户可以作为主播获得工作&#xff0c;让…...

做网站毕业答辩问题/百度地图3d实景地图

全球及中国气相硅粉市场产销调研及投资预测分析报告2022年版 【报告编号】: 414232 【出版时间】: 2022年2月 【出版单位】: 中商经济研究网 1 气相硅粉行业发展综述 1.1 气相硅粉行业概述及统计范围 1.2 气相硅粉行业主要产品分类 1.2.1 不同产品类型气相硅粉增长趋势2…...

宁德做网站/电商sem是什么意思

我想检查是否有任何用户有权下载任何文件.我有产品ID和用户ID,如何检查&#xff1f;我在google和woocommerce文档中进行了很多探索,但未找到任何解决方案.有什么帮助吗&#xff1f;提前致谢.解决方法:这是获取此信息的过程,您可以在php文件中的任何函数或挂钩函数中使用该信息.…...

心连网网站/推广神器

在“新基建”全面推进&#xff0c;5G与AI技术掀起新一轮技术革命浪潮的今天&#xff0c;爆发的数据、算法、算力加速了许多产业的数智转型&#xff0c;对于各行业来说蕴含的时代机遇巨大。在技术与产业升级的背景下&#xff0c;需要应对众多集成与融合的技术创新需求&#xff0…...

网站改版专题页/百度权重1

以下干货&#xff0c;认真看完&#xff0c;受益颇多。PDF版【高分宝典】点击传送门领取哦~ 前言 怎样的契机&#xff1f; 实际上&#xff0c;目前毕业已经两年时间了&#xff0c;在大学时就已经开始关注字节跳动的发展。一开始&#xff0c;我是电气自动化专业的&#xff0c;大…...

怎么用webstorm做网站/没经验可以做电商运营吗

python标记语句块使用方法&#xff0c;python语言和其它的编程语言有着显著的区别&#xff0c;那就是python对格式的要求非常苛刻&#xff0c;好处就是书写上简易命令&#xff0c;写错了就会自动报错&#xff0c;但实际上标记语块非常容易。 这里打开编辑器&#xff0c;新建一个…...

校园网站建设意见/湖南靠谱seo优化

一、变量 1、变量三要素&#xff1a;类型名称数值 2、变量需要先申请后使用 3、变量是有作用域的&#xff08;在一个作用域中不能重名&#xff09; 4、变量表示内存中的一个存储区域 二、程序中 的使用 1、如果 前后没有字符串就表示运算符 2、 前有字符串的 &#xff0c; …...