正则表达式之学习笔记
正则表达式学习笔记
- 一、概念
- 二、正则表达式组成
- 三、常见的正则表达式
- 3.1 .匹配任意字符
- 3.2 * 匹配前一个字符的0个或多个实例
- 3.3 ^ 匹配输入字符串的开头
- 3.4 $ 匹配行尾
- 3.5 [] 匹配字符集合
- \<\> 精确匹配符号
一、概念
正则表达式是由一系列特殊字符组成的字符串,每个特殊字符都被称为元字符,元字符并不表示字面上的含义,而都有特定的含义。
正则表达式由普通字符和元字符组成的集合,这个集合用来匹配模式。正则表达式的功能就是文本查询和字符串操作,它可以匹配文本的一个字符与字符集合。
例如a、b、1、2等字符属于普通字符,普通字符可以按照字面理解,
而*、^、[]等元字符,shell赋予了他们超越字面意思的意义,如*字面意思是符号,实际却表示重复前面的字符0次或多次的隐藏含义。
二、正则表达式组成
一个正则表达式由下列1项或多项组成:
1.一个字符集: 普通字符
2.锚: 指定了正则表达式要匹配的文本在文本行中所处的位置,如^和$就锚
3.修饰符 扩大或缩小正则表达式匹配文本的范围,修饰符含星号、括号和反斜杠
三、常见的正则表达式
正则表达式由一系列特殊字符组成,其中每个字符都有特定的含义和功能。以下是一些常见的正则表达式字符和功能:
. 匹配任意字符(除了换行符)
* 匹配前一个字符的0个或多个实例
+ 匹配前一个字符的1个或多个实例
? 匹配前一个字符的0个或1个实例
^ 匹配输入字符串的开头
$ 匹配输入字符串的结尾
\ 转义符
[] 匹配字符集合
\<\> 精确匹配符号
\{n\} 匹配前面字符出现n次
\{n,\} 匹配前面字符至少出现n次
\{n,m\} 匹配前面字符出现n次与m次之间
[abc] 匹配方括号内的任意一个字符(这里是a、b或c)
[^abc] 匹配除方括号内字符之外的任意字符
\\d 匹配任意数字字符
\\D 匹配任意非数字字符
\\s 匹配任意空白字符(包括空格、制表符等)
\\S 匹配任意非空白字符
\\w 匹配任意字母、数字或下划线字符
\\W 匹配任意非字母、数字或下划线字符
3.1 .匹配任意字符
.用于匹配任意字符,…73表示前面3个字符为任意字符,第4和第5 个字符为7和3

3.2 * 匹配前一个字符的0个或多个实例
*用于匹配前面一个普通字符的0次或多次
cat hell0.txt | grep l*

3.3 ^ 匹配输入字符串的开头

3.4 $ 匹配行尾
$匹配行尾
cat josh.txt | grep josh$
^$ 匹配空白行
cat josh.txt | grep ^$

3.5 [] 匹配字符集合
[]匹配字符集合,将匹配中括号字符集中的某一字符
匹配字符j
cat josh.txt | grep [j]

匹配26字母顺序[a-b]间任意字符,
cat josh.txt | grep [a-b]

匹配任意小写字符或数字
cat josh.txt | grep [a-z0-9]

匹配范围在a~z之外的任意一个字符
grep "[^a-z]" az.txt

<> 精确匹配符号

相关文章:
正则表达式之学习笔记
正则表达式学习笔记 一、概念二、正则表达式组成三、常见的正则表达式3.1 .匹配任意字符3.2 * 匹配前一个字符的0个或多个实例3.3 ^ 匹配输入字符串的开头3.4 $ 匹配行尾3.5 [] 匹配字符集合\<\> 精确匹配符号 一、概念 正则表达式是由一系列特殊字符组成的字符串&#…...
Java String类
字符串转义符号为 \ 常见的转义字符 转移字符对应的英文是 escape character , 转义字符串( Escape Sequence ) 字母前面加上捺斜线 "" 来表示常见的那些不能显示的 ASCII 字符 . 称为转义字符 . 如 \0,\t,\n 等,就称为转 义字…...
我的电子萝卜刀火了吗?
引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 笔者在上一篇文章《萝卜刀真的太危险了,于是我用Cocos做了一个》中说到因女儿从学校回来之后想要我给她买一把萝卜刀被我拒绝,但是又想要让她体验一下,因此用Cocos…...
git 查看本地秘钥
第一步: 1,打开终端或者命令行窗口,输入一下命令: cd ~/.ssh进入ssh目录 2,查看该目录下的所有文件,输入以下命令: ls -al该命令将显示ssh目录下的所有文件,包括秘钥文件和配置文件,如果不存…...
【TensorFlow1.X】系列学习笔记【入门二】
【TensorFlow1.X】系列学习笔记【入门二】 大量经典论文的算法均采用 TF 1.x 实现, 为了阅读方便, 同时加深对实现细节的理解, 需要 TF 1.x 的知识 文章目录 【TensorFlow1.X】系列学习笔记【入门二】前言神经网络的参数神经网络的搭建前向传播反向传播 总结 前言 学习了张量、…...
详解一下HTML的语义化标签
目录 什么是语义化标签: HTML5的语义化元素的优点: HTML5的语义化元素的缺点: 来个例子: 语义化标签有那些: 什么是语义化标签: 语义化标签是HTML的一种特性,其核心目标是让标签具有特定的意义。它们的存在不仅帮助开发者更好地理解文档的结构,也让…...
C++11的for循环
在C03/98中,不同的容器和数组,遍历的方法不尽相同,写法不统一,也不够简洁,而C11基于范围的for循环以统一,简洁的方式来遍历容器和数组,用起来更方便了。 for循环的新用法 #include <iostre…...
代码随想录算法训练营第六十天| 739. 每日温度、 496.下一个更大元素 I
代码随想录算法训练营第六十天| 739. 每日温度、 496.下一个更大元素 I 739. 每日温度496.下一个更大元素 I 今天的题都能看懂,做了一个小时 739. 每日温度 题目链接:739. 每日温度 文章链接 状态:看视频能看懂,还是要多练。 代码…...
13.3测试用例进阶
一.测试对象划分 1.界面测试(参考软件规格说明书和UI视觉稿) a.什么是界面 1)WEB站(浏览器) 2)app 3)小程序 4)公众号 b.测试内容 1)界面内容显示的一致性,完整性,准确性,友好性.比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示. 2)验证整个界面布局和排版…...
[云原生1] Docker网络模式的详细介绍
1. Docker 网络 1.1 Docker 网络实现原理 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0), Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP, 同时Docker网桥是每个容器的默认…...
uni——底部弹框显示,底部导航隐藏
案例 在uni-app中,如果你在tabbar页面显示一个底部弹框,底部导航默认是会依旧显示的。如果你想在弹框显示时隐藏底部导航,你可以使用uni.hideTabBar和uni.showTabBar方法来控制底部导航的显示和隐藏。 export default {methods: {openPopup(…...
HammerDB的安装和使用(超详细)
目录 编辑 一、HammerDB的介绍 二、HammerDB的安装 1、下载hammerdb安装包 2、权限配置以及安装 3、查看安装目录 三、安装前的配置 1、启动监听 2、启动数据库 3、创建表空间 1.修改临时表空间 2…...
java经典面试题总结
1.请简述Java的继承,重写和多态的概念和运用 继承是一种Java中重要的面向对象编程方式,它允许一个类从另一个类继承某些属性和方法,在这种关系下,子类可以重写父类的方法,从而实现不同的行为。 多态是继承实现的一种关…...
django中template中post请求接口csrf问题
$(function () {$.ajaxSetup({headers: { "X-CSRFToken": getCookie("csrftoken") }}); });// 为防止CSRF(Cross-site request forgery)跨站请求伪造,发post请求时需要在cookie中创建随机码 function getCookie(name) {v…...
聊聊RocketMQMessageListener的实现机制
序 本文主要研究一下RocketMQMessageListener的实现机制 示例 Service RocketMQMessageListener(nameServer "${demo.rocketmq.myNameServer}", topic "${demo.rocketmq.topic.user}", consumerGroup "user_consumer") public class UserC…...
ConfigurationProperties注解详解
ConfigurationProperties和Value注解用于获取配置文件中的属性定义并绑定到Java Bean或属性中 一个简单的例子 ConfigurationProperties需要和Configuration配合使用,我们通常在一个POJO里面进行配置: Data Configuration ConfigurationProperties(pre…...
三、组件与数据交互
一、组件基础 1、单文件组件 第一步:引入组件 import ComponentTest from ./components/ComponentTest.vue 第二步:挂载组件 components: {ComponentTest } 第三步:显示组件 <ComponentTest></ComponentTest><!-- 父组件 --…...
#define 宏定义看这一篇文章就够了
前言:在c/c学习的过程中,宏定义(#define)是作为初学者学习到的为数不多的预处理指令,在学习的时候我们被告知他可以帮助我们更高效的写程序,可以增加程序的可读性,但宏定义(#define&…...
LeetCode算法栈—验证图书取出顺序
验证图书取出顺序 目录 验证图书取出顺序 题解: 代码: 运行结果: 验证图书取出顺序 现在图书馆有一堆图书需要放入书架,并且图书馆的书架是一种特殊的数据结构,只能按照 一定 的顺序 放入 和 拿取 书籍。 给定一个…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
