正则表达式

深入解析TI C2000 ePWM模块:峰值电流模式Buck与LLC谐振变换器实战配置 脉宽调制(PWM)技术是电力电子与数字电源控制的核心,它通过调节开关信号的占空比或频率,实现对功率变换器输出电压、电流的精确控制。其基本原理是利用微控制器内部的定时器和比较器,生成具有特定时序的方波信号,驱动功率开关器件。这项技术的核心价值在于将复杂的模拟控制环路数字化,从而提升系统的可控性、灵活性和可靠性。在电机驱动、不间断电源(UPS)、服务器电源和新能源逆变器等广泛应用场景中,PWM技术都是实现高效能量转换的基石。本文聚焦于德州仪器(TI)C2000系列微控制器中功能强大的增强型PWM(ePWM)模块 阅读详情

列一下正则表达式中常用字符的用法,表格转自菜鸟教程

基本元字符:
这里写图片描述

  • 符号.在[]字符集中,其不再代表除换行符之外的任何一个字符,而是纯粹的点符号。
  • 符号^在[]字符集中,代表否定前缀,而不是定位字符开始的位置。

字符集:
这里写图片描述


捕获组和先行后行断言:
这里写图片描述


非打印字符和预定类:
这里写图片描述


下表从最高到最低说明了各种正则表达式运算符的优先级顺序:
这里写图片描述


捕获组

捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。一般一个小括号括起来就是一个捕获组。捕获组可以进行嵌套。以深度优先进行编号,在js中编号从1开始。

普通捕获组

每个捕获组都会按照深度优先的方式被自动分配一个组号,当要想使用某个捕获组时,通过组号来引用该捕获组。格式为:(exp)。

例如存在这样一个正则表达式:(A)(B(C)),其被扫描后编号的捕获组应该为:
这里写图片描述
例如在JS中,正则表达式为/mom ( and dad( and bay)?)?/gi,字符串为"mom and dad and baby",则该模式存在两个捕获组,分别为( and dad( and bay)?)和( and bay)

var text = "mom and dad and baby",
    pattern = /mom ( and dad( and bay)?)?/gi;

var matches = pattern.exec(text);

alert(matches[0]);   //"mom and dad and baby"  与整个模式匹配的字符串
alert(matches[1]);   //" and dad and baby"    与第一个捕获组匹配的字符串
alert(matches[2]);   //" and baby"    与第二个捕获组匹配的字符串

命名捕获组

即在模式中给对应的捕获组指定一个组名,当要想使用这个捕获组时,可以通过组名来引用该捕获组。格式为:(?<name>exp)

对于匹配一个日期(YYYY-MM-DD)的模式为(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}),这之中有3个命名捕获组,分别是(?<year>\d{4})、(?<month>\d{2})和(?<day>\d{2}),它们的捕获组名依次为year、month、day。

命名捕获组也有编号,当模式中只有命名捕获组时,编号规则与普通捕获组类似。当模式中既有命名捕获组又有普通捕获组时,先忽略命名捕获组,对普通捕获组按照深度优先方式编号,当普通捕获组编号完成时,再对命名捕获组进行编号。

在JS中的replace函数中,命名捕获组能快速调整字符串的顺序

var re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/u;

"2015-01-02".replace(re, '$<day>/$<month>/$<year>');
//'02/01/2015'

捕获组的向后引用

模式中捕获组的向后引用用于重复搜索前面某个分组匹配的文本,避免了冗余。对于普通捕获组,使用\number的格式进行引用,例如\1代表引用第一个捕获组。对于命名捕获组,除了使用编号进行引用外,还可以使用\k<name>的格式进行引用,例如\k<year>代表引用一个组名叫year的捕获组。

例如正则表达式\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go, 或者kitty kitty。这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\w+),这个单词会被捕获到编号为1的分组中,然后是1个或几个空白符\s+,最后是分组1中捕获的内容(也就是前面匹配的那个单词)\1。

也可以将普通捕获组改写为命名捕获组\b(?<word>\w+)\b\s+\k<word>\b,此时使用组名word来引用之前的捕获组。

非捕获组

非捕获组它参与匹配,但不捕获存储文本 ,也不针对组合进行计数,因此不会有组的编号,也不存在向后引用。格式为:(?:exp)

这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, industr(?:y|ies) 就是一个比 industry|industries更简略的表达式。

先行断言、先行否定断言、后行断言和后行否定断言都属于非捕获组
https://www.cnblogs.com/chip/p/4278135.html

  • (?=pattern) 正向先行断言
    代表字符串中的一个位置,紧接该位置之后的字符序列能够匹配pattern。
    例如对”a regular expression”这个字符串,要想匹配regular中的re,但不能匹配expression中的re,可以用”re(?=gular)”,该表达式限定了re右边的位置,这个位置之后是gular,但并不消耗gular这些字符,将表达式改为”re(?=gular).”,将会匹配reg,元字符.匹配了g,括号这一砣匹配了e和g之间的位置。
  • (?!pattern) 负向先行断言
    代表字符串中的一个位置,紧接该位置之后的字符序列不能匹配pattern。
    例如对”regex represents regular expression”这个字符串,要想匹配除regex和regular之外的re,可以用”re(?!g)”,该表达式限定了re右边的位置,这个位置后面不是字符g。负向和正向的区别,就在于该位置之后的字符能否匹配括号中的表达式。
  • (?<=pattern) 正向后行断言
    代表字符串中的一个位置,紧接该位置之前的字符序列能够匹配pattern。
    例如对”regex represents regular expression”这个字符串,有4个单词,要想匹配单词内部的re,但不匹配单词开头的re,可以用”(?<=\w)re”,单词内部的re,在re前面应该是一个单词字符。之所以叫后行断言,是因为正则表达式引擎在匹配字符串和表达式时,是从前向后逐个扫描字符串中的字符,并判断是否与表达式符合,当在表达式中遇到该断言时,正则表达式引擎需要往字符串前端检测已扫描过的字符,相对于扫描方向是向后的。
  • (?<!pattern) 负向后行断言
    代表字符串中的一个位置,紧接该位置之前的字符序列不能匹配pattern。
    例如对”regex represents regular expression”这个字符串,要想匹配单词开头的re,可以用”(?<!\w)re”。单词开头的re,在本例中,也就是指不在单词内部的re,即re前面不是单词字符。当然也可以用”\bre”来匹配。
Allegro如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层 在Allegro做PCB设计的时候,如果需要复制器件的位号到其它层是无法直接实现的,如果直接拷贝器件的位号的话,效果如下。但是Allegro的Cross Copy命令是支持复制任何属性的图形到其它层的,下面以复制器件位号和丝印外框为例说明。同样如果使用Z-copy命令,也是无法Z-copy text的,Finds下方texts是灰色的。如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层。另外cap处可以选择线段的端点是圆形,八角形,或者方形的铜皮。拷贝C1013,出现的是C* 阅读详情

相关推荐

数据标注的下一代SOP,可能不是Word,而是一段Prompt

再给几个反例:“这个只是正常纹理,不算。真正用于数据生产的Prompt,可能至少包含:任务定义、正例、反例、边界案例、优先级、输出格式、验收逻辑。一个项目100个人,如果100个人对这句话有100种理解,最后返工的就不是一个框,而可能是几十万帧数据。一个项目启动以后,项目经理先研究SOP,培训组长,组长再培训标注员,最后几百个人按照同一套规则干活。实际上一个成熟的项目经理,最重要的能力之一,就是:把客户的业务语言翻译成生产规则。真正让项目难交付的,从来不是80%的普通数据,而是那20%的长尾数据。

AI数据标注猿 296

常用正则表达式集锦

常用正则表达式集锦 正则表达式 正则表达式腾讯QQ  注意:/ 约束条件/,//之间的是约束条件,^是开始字符,$是结束字符,不起作用的情况下可以前面加^,并以+$是结束字符 1、 。句点符号表示任意一个字符; 2、[ ] 方括号表示匹配可以匹配方括号中的任意点单个字符,方括号只允许匹配单个字符。 3、| “或”符号表示小括号的任意一组字符,它不能和方括号使用,只能和小

Flex爱好者专栏 2695

GaN制备micro-led(一)

随着第三代半导体 GaN 材料的快速发展,GaN 基 LED 发展迅速并广泛商业化,这 为可见光通信的实现及应用提供了基础。然而,普通商用 LED 的调制带宽只有几十兆 赫兹,并不能很好的满足可见光通信系统高传播速率的需求。为增大调制带宽,针对发 射端 LED 光源部分的改进仍需提高。将光子晶体结构引入 LED 芯片量子阱内部,能够 影响光子寿命和光子传播,进而改变 LED 芯片的调制带宽和光提取效率。结合倒装微 尺寸(Micro)LED 结构,使其封装体积最小化,这使得可见光通信能够更加灵活地.

weixin_45852211的博客 896

关于正则表达式中的否定析取符号^

关于正则表达式中的否定析取符号^ 正则表达式中的否定析取符号有以下几种用法: 在中括号外,用于表示其后面的一个元素是行首 ^a 匹配对象 abc 匹配结果 a 在括号外面不加转义都表示其原本含义,即行首元素 ^a^b 匹配对象 abc 匹配结果 null 不存在开头既是a又是b的串 在括号外加了转义表示这个符号本身 ^a\^b 匹配对象 a^b 匹配结果 a^b 在中括号内,表示其后面的各个元素都不会出现,即否定析取 [^a] 匹配对象 a^b 匹配结果 ^ b 中括号中出现在第一个

qq_43513855的博客 1270

大疆OcuSync vs 传统2.4GHz:深度拆解无人机图传射频模块的硬件差异

本文深度对比了大疆OcuSync与传统2.4GHz无人机图传射频模块的硬件差异,涵盖芯片组、天线系统、PCB设计、散热方案及生产测试等核心环节。重点解析OcuSync的全定制SoC芯片、智能MIMO天线阵列及精密PCB布局如何实现革命性性能提升,为无人机图传技术发展提供专业参考。

u5v6w7的博客 806

新手小白 必须精进的 “ FLASH分区管理Code and Data ” !!!最强文章解析!!!

FLASH“代码区”和“数据区”不是每个项目都必须显式管理,但只要你的产品功能越来越丰富,对可靠性和扩展性要求提高,就一定要学会科学划分和使用。这也是嵌入式工程师进阶路上的必修课!

qq_75157958的博客 933

正则表达式(去除括号及括号里面的内容,去除“的”字,去除非中文前缀,去除非中文后缀,自定义规则进行规范数据)

1.去除括号及括号里面的内容 @Test public void test1() { String oldValue="哈哈哈(不要了)"; System.out.println(oldValue.replaceAll("(\\()(.*?)(\\))", "")); } 运行结果: 2.去除“的”字结构 (主要是找到“的”字的Unicode码) @Test public v...

yechengchao的博客 5741

顶刊级科研绘图技巧

顶刊级科研绘图技巧

2401_89571885的博客 1157

# 正则表达式

正则表达式 一、匹配符号 “”" re模块 re模块是python提供的专门用支持正则表达式的一个模块 fullmatch函数: fullmatch(正则表达式,字符串) – 让正则表达式和指定字符串进行完全匹配,如果匹配失败返回None; “”" “”" 2. 正则语法 正则表达式 – 正则表达式是一个字符串复杂问题变得简单的工具。 写正则表达式的主要工作:用正则符号描述清楚相关字符串的规则。 python正则表示方式:r’正则表达式’ js的正则:/正则表达式/ “”" from re

她曾是你的破绽 748

[AI] 企业内网部署大模型的三种常见方案:从“能用”到“好用”的技术选型指南

企业内网部署大模型的三种方案解析:本地模型安全但门槛高,平台方案(如Dify)最平衡推荐,混合架构适合进阶需求。关键路径是渐进式演进,从快速验证到平台化建设,核心在于流程优化而非单纯选模型。数据安全、成本可控和工程落地能力是决策重点。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 772

AutoSAR MemMap模块详解及使用注意事项

在本文中,我们将深入探讨MemMap模块的实例解析,并介绍在使用该模块时需要注意的一些事项。在上述代码中,我们使用了MEMMAP_START_SEC_VAR_32BIT和MEMMAP_START_SEC_CODE来定义MemMap区域的起始位置,使用MEMMAP_STOP_SEC_VAR_32BIT和MEMMAP_STOP_SEC_CODE来定义MemMap区域的结束位置。1.合理划分MemMap区域:根据实际需求,合理划分MemMap区域,将不同类型的变量放置在不同的区域中,以便于管理和访问。

weixin_50547796的博客 2533

JavaScript-正则表达式

ECMAScript 通过 RegExp 类型来支持正则表达式。 语法:      var expression = / pattern / flags ; 其中的模式(pattern)部分可以是任何简单或复杂的正则表达式,可以包含字符类、限定符、分组、向前查找以及反向引用。每个正则表达式都可带有一或多个标志(flags),用以标明正则表达式的行为。正则表达式的匹配模式支持下列 3 个标志: g...

qq_39512601的博客 218

Oracle EBS和华为MetaERP在会计科目(COA)设计上的观察非常精准。这两种设计确实代表了两种截然不同的系统架构思想,我们可以从设计哲学、优劣对比和演进关系三个方面进行深入分析。

OracleEBS与华为MetaERP的COA设计对比分析 OracleEBS采用弹性域架构,通过固定段数字符串实现多维度核算,强调稳定性和全球统一标准,但修改成本高、扩展性受限。华为MetaERP采用解耦架构,将核算单元、自然科目和核算维度分离,支持动态扩展和灵活调整,更适合业务快速变化的企业。 OracleEBS优势在于强一致性和成熟稳定,劣势是灵活性差;华为MetaERP优势是极致灵活性,劣势是对管理要求高。两者代表了不同时代的企业软件设计理念:OracleEBS适合标准化需求,MetaERP则面向快

金牌架构师 429

正则表达式(9):扩展正则表达式

上图中的扩展正则使用了分组符号”( )”,”(com|net)”表示将括号内的内容看做一个整体,而括号内的内容为”com|net”,它表示”com或者net”,所以,”(com|net)$”就表示以com或者net结尾的行。上图中,grep命令使用了”-E”选项,表示grep命令会把”正则表达式”中的符号当成”扩展正则表达式”去理解,而不再使用默认的”基本正则表达式”。5、顶级域名之前必须包含一个”点”,换句话说就是,邮箱必须以”.com”、”.net”、”.org”、”.edu”结尾。

qq_40531442的博客 2171

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python正则表达式

正则表达式是对字符串提取的一套规则,我们把这个规则用正则里面的特定语法表达出来,去匹配满足这个规则的字符串。正则表达式具有通用型,不仅python里面可以用,其他的语言也一样适用。正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,常用的有都可以用于匹配字符串。

2301_81704383的博客 1322

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux正则表达式,正则表达式分类,元字符,基础正则表达式,扩展正则表达式,正则表达式案例

上文介绍了通配符1,本文介绍、总结和通配符有着诸多共同点的一类符号,即正则表达式(regular expression)。只是通配符的对象是文件、或目录,而后者对象是文本内容。在很多地方都有正则表达式的身影,它的作用是用来匹配指定式样的内容,个人理解为,正则表达式规定了指定式样pattern,能匹配该指定式样的字符或字符串即为内容,内容的来源可以是文件、某个标准输入等,使用正则表达式(regular expression)的目的就是匹配到了该内容。

有人说学习`这个`最好的时间是十年前,有人说最好的时间是现在,众说纷纭... 1821

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

shell 正则表达式详解

什么是正则表达式;为什么使用正则表达式;如何使用正则表达式;基本正则表达式;扩展正则表达式; 包含正则表达式例题。

weixin_48814356的博客 3003

linux正则表达式大全,正则表达式,正则表达式语法大全

正则表达式,正则表达式语法大全正则表达式分为两类:基本正则表达式:BRE扩展正则表达式:ERE基本正则表达式的元字符:字符匹配:.: 匹配任意单个字符;[]: 匹配指定范围内的任意单个字符[^]:匹配指定范围外的任意单个字符[:digit:],[:upper:],[:lower:],[:alpha:],[:alnum:],[:space:],[:punct:]匹配次数:用在要指定次数的字符后面,...

weixin_32955259的博客 2878

regex 正则表达式

regex 正则表达式 文章目录regex 正则表达式前言元字符abc 等普通字符| 符号两侧的正则均能匹配. 匹配任意一个字符 '\n'除外^ 匹配字符串开头$ 匹配字符串结尾* 匹配重复0次或多次+ 匹配重复1次或多次? 匹配重复0次或1次{N} 匹配重复指定次数{M,N} 匹配重复指定次数范围[abcd] 字符集匹配[^ ...] 字符集不匹配\d 匹配任意数字字符\D 匹配任意非数字字...

weixin_40118971的博客 6475

【正则表达式】{1} ——正则表达式的语法

参考资料:Python网络爬虫与信息提取(北京理工大学慕课) 正则表达式的语法: 正则表达式语法由字符和操作符构成 正则表达式的常用操作符: 操作符 说明 实例 . 表示任何单个字符 [ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a到z单个字符 [^ ] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符 ...

Giyn 4783

正则表达式总结

每次使用到正则表达式的时候都要去翻书或者去网上查,很麻烦,抽出点时间做一个总结,方便以后用到的时候查阅。一、正则表达式的几个特殊符号1、^和$两个特殊的符号‘^’和’$’。他们的作用是分别指出一个字符串的开始和结束。例子如下:"^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^ab

lmb55的专栏 2269

Shell编程之正则表达式

目录 正则表达式 概述 基础正则表达式 “*”前一个字符匹配 0 次,或任意多次 “.” 匹配除了换行符外任意一个字符 “^”匹配行首,“$”匹配行尾 “[]” 匹配中括号中指定的任意一个字符,只匹配一个字符 “[^]” 匹配除中括号的字符以外的任意一个字符 “\” 转义符 “\{n\}”表示其前面的字符恰好出现 n 次 “\{n,\}”表示其前面的字符出现不小于 n 次 “\{n,m\}”匹配其前面的字符至少出现 n 次,最多出现 m 次 扩展正则表达式 正则表达式综合案例

baidu_41388533的博客 1109
上一篇: ES6学习笔记3 字符串的扩展
下一篇: ES6学习笔记4 正则表达式的扩展
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值