学习笔记:正则表达式

UFS Link Startup全流程解析:从硬件初始化到链路稳定的5个关键阶段 本文详细解析了UFS Link Startup的全流程,从硬件初始化到链路稳定的5个关键阶段,包括初始化阶段、数据通道发现、数据通道重新对齐、链路启动收尾和能力交换阶段。通过时序分析、代码实现和实际案例,帮助开发者掌握UFS协议链路启动的技术细节,确保设备与主机之间的可靠通信。 阅读详情

1.写法概述

正则表达式就是拼在一起的对比字符串,所以字符之间紧挨着。
例如[a-z0-9_-]中括号表示这里面的东西选1个,a-z就是从a到z。所以这句话的意思就是匹配的单个字符在a-z,0-9,_,-里面。
基于这点从左到右解读正则表达式就很简单了。

2.先看懂,再会写

1.简单用户名筛选:/^[a-z0-9_-]{3,16}$/
  • ^$写在外面表示匹配的开始和结束,写在中括号里表示非
  • [a-z0-9_-]中括号表示匹配的“单个”字符在中括号的范围里
  • {3,16}表示至少匹配3次,最多匹配16次
    那么总体来说意思就是匹配的字符串在,[a-z0-9_-]范围里,出现3-16次。那么12312312aa, sad_24这样的字符串都是符合的。
2.简单URL筛选
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)\/?$/
  • ^$写在外面表示匹配的开始和结束,写在中括号里表示非
  • () 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
  • https直接写在这里就表示要匹配到https这几个字符
  • ?在这里表示匹配0或者1次等价于{0,1},就是说https字符要匹配到0个或者1个
  • \表示转义\/就表示匹配“/”
(https?:\/\/)?整体来看就是:
再匹配要有“:”,
再匹配要有“//”,
()?表示前面这个括号里。的东西有一个或者没有都可以。
所以https:// , :// , 都符合,空的一样符合
([\da-z\.-]+)整体来看就是:
0-9  a-z .  - 里面出现1次或者多次
所以 2873ad, dasdj12312都可以
 [\/\w \.-]*:表示 / A-Z  a-z 0-9 _  .  - 匹配到0或者多次

那么再整体来看,这字符串可以是https://abc.abc.ABC/或者是://www.zz 等

3.表达式全集

字符描述
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”。
^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
$匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
*匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。
+匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
?匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。
{n}n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。
{n,}n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。
{n,m}m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。
?当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。
.匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“(.|\n)”的模式。
(pattern)匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用 0… 9属性。要匹配圆括号字符,请使用“\(”或“\)”。
(?:pattern)匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。
(?=pattern)正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
(?<=pattern)反向肯定预查,与正向肯定预查类拟,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?<!pattern)反向否定预查,与正向否定预查类拟,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。
x|y匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。
[xyz]字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。
[^xyz]负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“p”。
[a-z]字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
[^a-z]负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。
\b匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。
\B匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
\cx匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。
\d匹配一个数字字符。等价于[0-9]。
\D匹配一个非数字字符。等价于[^0-9]。
\f匹配一个换页符。等价于\x0c和\cL。
\n匹配一个换行符。等价于\x0a和\cJ。
\r匹配一个回车符。等价于\x0d和\cM。
\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S匹配任何非空白字符。等价于[^ \f\n\r\t\v]。
\t匹配一个制表符。等价于\x09和\cI。
\v匹配一个垂直制表符。等价于\x0b和\cK。
\w匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
\W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
\xn匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。.
\num引用第num个小括号里的内容 (https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})\2 表示引用([\da-z\.-]+)
\n标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
\nm标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。
\nml如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。
\un匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。


4.补充

贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配

string pattern1 = @"a.*c";   // greedy match 
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abcabc"

非贪婪匹配:在满足匹配时,匹配尽可能短的字符串,使用?来表示非贪婪匹配

string pattern1 = @"a.*?c";   // non-greedy match 
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abc"

几个常用的非贪婪匹配Pattern

*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复

参考网站:
表达式全集: http://tool.oschina.net/uploads/apidocs/jquery/regexp.html
在线表达式验证:https://c.runoob.com/front-end/854

ECharts 实现世界地图 效果图 源代码(仅供参考) <template> <div class="echarts"> <div class="className" id="id" style="width: 100%; height: 450px" ref="myEchart" ></div> </div> </template> <script lang="ts"> imp 阅读详情

相关推荐

【科研导航】【计算机视觉与图像处理】从顶刊到潜力股:跨学科(电子/电气/信息)SCI期刊投稿全景图

本文全面解析了计算机视觉与图像处理领域的SCI期刊投稿策略,涵盖从顶刊到潜力股的各类期刊特点。重点介绍了IEEE Transactions系列、Elsevier旗舰期刊以及二区优质期刊的审稿偏好和投稿技巧,特别适合电子/电气/信息交叉学科的研究者。文章还提供了三区、四区期刊的实用投稿建议,帮助科研新手快速找到适合的发表平台。

weixin_30897233的博客 81

正则表达式

(本文大部分内容来源于此链接的文章,我对部分内容做了一些改动,方便自己日后复习,若有侵权,请联系我,我会将此文删除,谢谢) 正则表达式,是一组由字母和符号组成的特殊文本,可用来从文本中找出我们需要的部分。 正则表达式是一种从左向右匹配主体字符串的模式,术语为"regex"或"regexp"。 正则表达式可以从一个基础字符串中根据特定的匹配模式替换文本中的字符串、提取字符串等。 这是一个正则表达式:...

我是一只小嵩鼠 1505

STM32驱动MG996R舵机的PWM控制与闭环原理

舵机是一种典型的模拟闭环伺服系统,其核心是通过电位器反馈实现角度位置的自动校正。工作原理基于负反馈控制:目标PWM脉宽决定期望角度,电位器输出实时反馈实际角度,控制电路计算偏差并驱动电机消除误差。该机制赋予舵机强带载能力与抗干扰性,是机器人、云台、智能执行器等场景的关键执行单元。在嵌入式开发中,STM32通过定时器生成标准20ms周期、0.5–2.5ms脉宽的PWM信号,需严格遵循电气规范,并解决PA15引脚SWJ复用冲突、定时器重映射及CCR精度计算等关键问题。本文深入解析MG996R舵机控制全流程,涵盖

weixin_42600407的博客 559

正则表达式的基本使用

1 正则表达式-字符类 语法示例:[] 表示匹配单个字符 ^ 取反 - 范围 [abc]:代表a或者b,或者c字符中的一个。 [^abc]:代表除a,b,c以外的任何字符。 [a-z]:代表a-z的所有小写字符中的一个。 左右包含 [A-Z]:代表A-Z的所有大写字符中的一个。 [0-9]:代表0-9之间的某一个数字字符。 [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。 [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。

Terrance__的博客 783

晶圆表面缺陷检测现状概述

凹坑,凸起,尖角,沟槽),使用光束对晶圆进行照射,收集反射光和散射光信息进行缺陷判断,进一步可分为无图案晶圆表面检测和宏观缺陷检测设备。KLA使用SR-DUV光,检测精度在10nm以下。扫描电子显微(电子束和晶圆表面产生二次电子,X射线等)获取高分辨率的图像,然后用图像处理表面缺陷(凹坑,凸起,尖角,沟槽等)表面容貌和材料信息,分辨率可达5-10nm。晶圆表面缺陷检测设备主要检测晶圆外观呈现出来的缺陷,损伤、毛刺等缺陷,主要设备供应商KLA,AMAT,日立等,其中KLA在晶圆表面检测设备占有市场52%左右。

qq_36786800的博客 1万+

【数据集】GPM IMERG Daily Precipitation Dataset

GPM IMERG Daily Precipitation Dataset

WW、forever的博客 1218

4.4、RegExp正则表达式对象

1、什么是正则表达式 正则表达式可以用来匹配字符串,通过正则表达式,可以实现字符串的截取、按规则替换、验证字符串的内容等 2、正则表达式的语法 语法 作用 ^ 开头 $ 结尾 [] 范围 {} 位数 \w 范围:数字字母(包大写)和下划线 \d 范围:[0-9] \s 范围:空格换行 . 范围:只要不是null即可 + 位数:1-多位 ? 位数:0-1位 \ 转义(特殊符号) 3、[]:指定范围,//:表示正规 // 1、输入用户名

weixin_45065754的博客 713

CVPR 2026 即插即用 | 注意力篇 | PFG:多尺度大核+像素级频率门控,特征显著增强,精准适配边缘纹理场景

本文提出了一种基于频率引导的轻量级外围门控模块PFG,用于高效时空预测学习。该模块通过多尺度大核分解卷积(1×K + K×1)捕捉外围空间依赖,同时利用固定频率滤波器提取高频线索,动态融合不同尺度的外围特征。核心创新包括:外围聚焦的多尺度空间增强、频率引导的动态融合机制、双阶段归一化协同等。实验表明,PFGNet在多个基准数据集上达到SOTA性能,同时保持较低计算复杂度。该模块可直接嵌入各类视觉模型,适用于需要强化空间-通道协同表达的轻量级任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 476

VBA学习笔记六:正则表达式

从正则表达式的作用和匹配规则开始,介绍了正则表达式在VBA中的使用方法,并通过案例演示了正则表达式在不同场景下的应用

gogoel的博客 7504

YOLOv5/v7/v8首发革新改进——轻巧、创新的LADH检测头

本文介绍了一种原创改进的轻量化非对称多级压缩LADH检测头,该检测头能够实现即插即用,并在YOLOv5/v7/v8检测器中取得了显著的性能提升。本文将介绍一种原创改进的轻量级非对称多级压缩LADH(Lightweight Asymmetric Dual-Head)检测头,该检测头能够实现即插即用,并显著提升YOLO检测器的性能。因此,我们提出了一种非对称多级压缩的方法,即对不同类别的检测头采用不同的压缩比例。然而,为了进一步提高YOLO的性能,我们进行了一项原创改进,设计了一种轻巧且创新的LADH检测头。

IpyVariable的博客 2725

PCL ICP算法实现点云精配准【2026最新版】

PCL1.14.1 及之前版本所实现的迭代最近点ICP算法。博客长期更新,本文最新更新时间为:2026年4月17日。

点云侠的博客 31万+

正则表达式学习笔记:断言

在正则表达式中,=...)是一个正向肯定预查(positive lookahead)的语法结构。它用于在匹配字符串时,查找某个位置后面是否跟着特定的模式,而不消耗实际的字符。具体来说,=PM)匹配一个数字序列(\d+),但该数字序列后面必须紧跟着字符串 “PM”。这种预查会在匹配的时候向前看,并确定某个位置后面是否满足预期的条件。如果使用正则表达式\d+(?=PM)需要注意的是,正向肯定预查只是用来判断某个位置后面的模式是否匹配,它并不会包含在最终的匹配结果中。

m0_62652709的博客 822

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java学习笔记:正则表达式

Java学习笔记:正则表达式正则表达式之定义与用途正则表达式之实例分析 最近在学习Java,学到正则表达式这一块儿感觉这个内容挺有意思,似乎与模式识别有着微妙的联系,所以想写一个学习笔记,记录一下自己学习的过程。以下内容仅仅是作为学习笔记,如有不当之处,敬请谅解与指正。 正则表达式之定义与用途 首先,一起探讨一下正则表达式的定义。其实,它就是对字符串的模式进行了一个定义,通过该正则表达式,可以匹配到对应的一种或多种字符串。举一个最简单的例子:Hello World,这是一个字符串,这同时也是一个最简单的正则

周三不Coding的博客 382

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

学习笔记:正则表达式

正则表达式直接量正则表达式直接量定义为包含在一对斜杠(/)之间的字符,例如:var pattern =/s$/;(即匹配以s结尾的字符串)用构造函数RegExp()也可以,例:var pattern = new RegExp(“s$”); ECMAScript 3规定: 一个正则表达式直接量会在执行到它的时候转换为一个RegExp对象,同一段代码所表示的正则表达式直接量的每次运算都返回同一

illuSioN4ng↖(^ω^)↗ 775

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

学习笔记:Python正则表达式

1. 常见函数 1. Shell 通配符 from fnmatch import fnmatch, fnmatchcase 1.1fnmatch 大小写不敏感[具体跟操作系统相关,windows不敏感] print(fnmatch('test.txt', '*.Txt')) --> True 1.2fnmatchcase print(fnmatchcase('test.txt', '*.Txt')) --> False 2. 字符串匹配和搜索 str1.startwith(str2) : str

Afollower的博客 281

Linux学习笔记:正则表达式

本文是自己学习的一个总结,主要记录了linux中正则表达式的用法

sinat_38393872的博客 513

前端(API)学习笔记(CLASS 6):正则表达式

正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象通常用来查找、替换那些符合正则表达式的文本,许多语言都支持正则表达式正则表达式在JavaScript中的使用场景:1、验证表单:用户名表单只能输入英文字母、数字或者下划线,昵称输入框中可以输入中文(匹配)2、过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等。

2301_81351468的博客 730

正则表达式匹配空值_正则表达式学习笔记(三):元字符

前言上一篇文章中我们研究了行的起止符、字符组和点号等正则表达式的元字符,有的同学可能注意到,在第一篇学习笔记中提到的(.*?)正则表达式的含义还是不明朗,因为*?这两个符号到目前为止,我们还没有分析过。这一篇文章中,我们继续来研究其它的元字符,之后用学到的知识来给(.*?)做出解释。多选分支我们已经知道字符组是由中括号[]括起来的,而多选结构则是由小括号()括起来的,从匹配字符的数量来看...

weixin_39620279的博客 1454

javascript学习笔记:正则表达式

假设用户在HTML表单中填写姓名,出生日期,邮箱等,那么在将表单提交到服 务器进一步处理前,javascript程序会检查表单来确认用户是否输入了信息,并且 这些信息是否符合规定的格式。 1.什么是正则表达式? 正则表达式(regular expression)是一个描述字符模式的对象。ECMAScript 的 RegExp 类表示正则表达式, 而 String 和 RegE

weixin_41105127的博客 340

学习笔记:基础正则表达式

我们知道,正则表达式在程序语言中很常见,灵活应用正则表达式,能帮助我们建立一些编程思维和语法习惯。那么,到底什么是正则表达式呢?正则表达式的概念:正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要是用于字符串的模式分割、匹配、查找及替换工作。 其实,在正则表达式中最常用也最主要的是包含匹配即:匹配。不少人在学习正则表达式的时候容易把正则表达式和通配符搞混淆,下面我简要说明一下正则表达式和

the_scent_of_th_soul的博客 800

Python学习笔记26:正则表达式

使用?和*通配符来查找硬盘上的文件。?通配符匹配文件名中的 0 个或 1 个字符,而*通配符匹配零个或多个字符。像data(\w)?\.dat这样的模式将查找下列文件: data.dat data1.dat data2.dat datax.dat dataN.dat 使用*字符代替?字符扩大了找到的文件的数量。data.*\.dat匹配下列所有文件: da...

weixin_33940102的博客 307

python学习笔记:正则表达式

re.I 使匹配对大小写不敏感 re.L 做本地化识别(locale-aware)匹配 re.M 多行匹配,影响 ^ 和 $ re.S 使 . 匹配包括换行在内的所有字符 re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 import re 懒惰匹配 Str = “abcdacs...

来到了学渣的博客 397

C++学习笔记总结练习:正则表达式

目录参考文献。

实力派,无需多言! 533
上一篇: treeview默认收缩指定行和nodeId取值
下一篇: 【学习笔记】Python爬虫-豆瓣电影所有短评
澪月
博客等级 码龄11年 29粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值