正则表达式之学习笔记

正则表达式学习笔记

    • 一、概念
    • 二、正则表达式组成
    • 三、常见的正则表达式
      • [3.1 .匹配任意字符](#3.1 .匹配任意字符)
      • [3.2 * 匹配前一个字符的0个或多个实例](#3.2 * 匹配前一个字符的0个或多个实例)
      • [3.3 ^ 匹配输入字符串的开头](#3.3 ^ 匹配输入字符串的开头)
      • [3.4 匹配行尾](#3.4 匹配行尾)
      • [3.5 \[\] 匹配字符集合](#3.5 [] 匹配字符集合)
      • [\<\> 精确匹配符号](#<> 精确匹配符号)

一、概念

正则表达式是由一系列特殊字符组成的字符串,每个特殊字符都被称为元字符,元字符并不表示字面上的含义,而都有特定的含义。

正则表达式由普通字符和元字符组成的集合,这个集合用来匹配模式。正则表达式的功能就是文本查询和字符串操作,它可以匹配文本的一个字符与字符集合。

例如a、b、1、2等字符属于普通字符,普通字符可以按照字面理解,

而*、^、\[\]等元字符,shell赋予了他们超越字面意思的意义,如*字面意思是符号,实际却表示重复前面的字符0次或多次的隐藏含义。

二、正则表达式组成

一个正则表达式由下列1项或多项组成:

1.一个字符集: 普通字符

2.锚: 指定了正则表达式要匹配的文本在文本行中所处的位置,如^和$就锚

3.修饰符 扩大或缩小正则表达式匹配文本的范围,修饰符含星号、括号和反斜杠

三、常见的正则表达式

bash 复制代码
正则表达式由一系列特殊字符组成,其中每个字符都有特定的含义和功能。以下是一些常见的正则表达式字符和功能:
.    匹配任意字符(除了换行符)
*    匹配前一个字符的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次或多次

bash 复制代码
cat hell0.txt | grep l*

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

3.4 $ 匹配行尾

$匹配行尾

bash 复制代码
cat josh.txt | grep josh$ 

^$ 匹配空白行

bash 复制代码
cat josh.txt | grep ^$

3.5 \[\] 匹配字符集合

\[\]匹配字符集合,将匹配中括号字符集中的某一字符

匹配字符j

bash 复制代码
 cat josh.txt | grep [j]

匹配26字母顺序a-b间任意字符,

bash 复制代码
cat josh.txt | grep [a-b]

匹配任意小写字符或数字

bash 复制代码
cat josh.txt | grep [a-z0-9]

匹配范围在a~z之外的任意一个字符

bash 复制代码
grep "[^a-z]" az.txt

<> 精确匹配符号

相关推荐
yi0112 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
志尊宝3 小时前
Vue3 零基础每日笔记(073):keep-alive 页面缓存实战——列表页返回不丢状态
vue.js·笔记·缓存·#vue #前端 #前端开发·#javascript·#vue.js
李日华大战鸡红4 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
weixin_448119945 小时前
Datawhale Easy Data × AI:笔记1 已重做,看新的笔记
笔记
要开心吖ZSH6 小时前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
kkkkkkkkkk_Z6 小时前
新手自学嵌入式 | 学习日记:异常与中断基础、i.MX6ULL裸机开发环境搭建、GPIO模块与点灯原理
学习
咖啡忍者7 小时前
【SAP】程制造生产计划PP-PI(Production Planning for Process Industries)
笔记
m4Rk_7 小时前
【论文阅读】Agent 记忆机制(94):MemGen——在推理过程中动态生成并织入潜在记忆
论文阅读·人工智能·学习·开源·github
晓德7 小时前
0、LLM大模型安全学习系列(启)
学习·安全
Titan20248 小时前
MySQL索引学习笔记
笔记·学习·mysql