正则表达式笔记之二

Transformer是什么?看完这篇你就醍醐灌顶 前言 由谷歌团队提出的预训练语言模型BERT近年来正在各大自然语言处理任务中屠榜(话说学者们也挺有意思的,模型名都强行凑个芝麻街的人物名,哈哈哈)。 BERT算法的最重要的部分便是Transformer的概念,它本质上是Transformer的编码器部分。 而Transformer是什么呢?transformer是永远的神,自从transformer使用了抛弃rnncnn的纯attention机制之后,各种基于transformer结构的预训练模型都如雨后春笋般雄起,而transformer中最重要就是使用 阅读详情

1, 元字符:元字符是正则表达式语法的一部分,它们有:

       (   [  {   /   ^   $   |   )   ?   *   +   .

       任何时候要在正则表达式中使用这些元字符,都必须对它们进行转义

 

2, 特殊字符: 对于特殊字符,你可以通过使用字符来表示它们,也可以使用它们的ASCII代码或者Unicode代码来指定。要使用ASCII表示一个字符,则必须指定一个两位的十六进制代码,并在前面加上/x。例如,字符b的ASCII码为98,等于十六进制的62,因此,字符b可以使用/x62:

       var sColor = "blue";

       var regB = //x62/;

       alert(regB.test(sColor));            // output "true"

       如果要使用Unicode来表示字符,必须指定字符串的四位的十六进制表示形式。因此b应该是/u0062

       另外,还有其他一些预定义的特殊字符,如果通过RegExp构造函数来使用它们,都必须进行转义。字符如下:

        /t                            制表符

        /n                           换行符

        /r                            回车符

        /f                            换页符

        /a                           alert字符

        /e                           escape字符

        /cX                          与X相对应的控制字符

        /b                           回退字符

        /v                           垂直制表符

        /0                           空字符

 

3, 字符类: 字符类是用于测试的字符的组合。

      a, 简单类: 通过将一些字符放入方括中,可以很有效地告诉正则表达式去匹配第一个字符,第二个字符等等。

          例如,假设要匹配"bat","cat","fat",使用简单类可以很方便的解决这个问题:

          var sToMatch = "a bat, a Cat, a fAt baT, a faT cat";

          var regBatCatFat = /[bcf]at/gi;

          var arrMatches = sToMatch.match(regBatCatFat);

          其中arrMatches中现在存放乐这些值:"bat", "Cat", "fAt", "baT", "faT", "cat"。

          也可以在简单类(或者其他的字符类)中包含特殊字符,例如把b替换成它的Unicode形式:

          var regBatCatFat = /[/u0062cf]at/gi;

 

      b, 负向类: 有时可,除了特定的一些,你可能会想要匹配所有的字符。这种情况下,可以使用负向类,它可以指定要排除的字符。

          例如,要匹配除了a和b的所有字符,那么这个字符类就是[^ab]。脱字符号(^)告诉正则表达式字符不能匹配后面跟着的字符。

          回到前面的例子,如果只想获取包含at但不能以b或c开头的单词呢?

          var sToMatch = "a bat, a Cat, a fAt baT, a faT cat";

          var regBatCatFat = /[^bc]at/gi;

          var arrMatches = sToMatch.match(regBatCatFat);

          其中arrMatches中现在存放乐这些值:"bat", "Cat", "fAt", "baT", "faT", "cat"。

          在这个例子中,arrMatches包含"fAt"和"faT",因为这些字符串匹配了一个以at结尾但不以b或c开头的字符序列。

 

      c, 范围类:假设要匹配所有的字符表中的字符,但是又不想逐个输入,这是可以使用范围类指定从a到z之间的范围[a-z].

          这里关键的地方是那条横线(-),它在这里应该看作是“从什么到什么”而不是减号。

          注意: [a-z]仅仅匹配了小写字符,除非正则表达式用i来指明是不区分大小写的。如果仅仅要匹配大写字母,使用[A-Z]

          var sToMatch = "num1, num2,num3,num4,num5,num6, num7, num8, num9"

          var regOneToFour = /num[1-4]/gi;

          var arrMatches = sToMatch.match(regOneToFour);

          在执行完后,arrMatches中包含"num1", "num2", "num3", "num4",因为他们都匹配num后面跟着字符1~4.

          也可以使用负向范围类,这样可以排除给定范围内的所有字符。例如,要排除字符1~4,使用的类是[^1-4]

 

      d, 组合类: 组合类是由几种其他的类组合而成的字符类。

          例如要匹配所有从a~m的字母以及从1~4的数字,以及一个换行符,那么用到的类应该这样:[a-m1-4/n]

          注意在内部的类之间不要有空格

         

      e, 预定义类: 由于某些模式会反复用到,所以可以使用一组预定义类以让我们更方便地指定复杂类,如下:

           代码                         等同于                               匹配

           .                              [^/n/r]                             除了换行和回车之外的任意字符

           /d                            [0-9]                                数字

           /D                            [^0-9]                             非数字字符

           /s                            [/t/n/x0B/f/r]                    空白字符

           /S                            [^/t/n/x0B/f/r]                 非空白字符

           /w                           [a-zA-Z_0-9]                    单词字符(所有的字母、数字和下划线)

           /W                          [^a-zA-Z_0-9]                  非单词字符

           使用预定义字符可以明显地使模式匹配变得简单。例如,假设要匹配3个数字,如果不用/d的话,代码会类似这样:

           var sToMatch = "567 9838 abc";

           var regThreeNums = /[0-9][0-9][0-9]/;

           alert(regThreeNums.test(sToMatch));       // output "true"

           使用/d,正则表达式变得更加明了:

           var sToMatch = "567 9838 abc";

           var regThreeNums = //d/d/d/;

           alert(regThreeNums.test(sToMatch));       // output "true"

 

4,  量词: 量词可以制定某个特定模式出现的次数。当指定莫个模式应当出现的次数时,可以指定硬性数量(如莫个字符应该出现三次),也可以指定软性数量(如莫个字符至少出现一次,但可以出现任意多次)。

       a, 简单量词:下表列出乐指定特定模式数量的几种不同方法:

            代码                                   描述

            ?                                       出现零次或一次

            *                                       出现零次或多次(任意次)

            +                                       出现一次或多次(至少出现一次)

            {n}                                   一定出现n次

            {n,m}                               至少出现n次但不超过m次

            {n,}                                  至少出现n次

            例如,假设想匹配单词bread, read或red,使用问好量词,则可以只要使用一个表达式就可以匹配这三个:

            var regPattern = /b?rea?d/;

            次正则表达式等同于下面这个表达式:

            var regPattern = /b{0,1}rea{1,0}d/;

            它表示:b出现零次或一次,跟着r,跟着e,跟着出现零次或一次的a,跟着d。

            假设已创建了正则表达式匹配字符串bd,bad,baad和baaad,我们就用这个类具体描述其他几个量词。

            正则表达式                                     匹配

            ba?d                                            "bd", "bad"

            ba*d                                            "bd", "bad", "baad", "baaad"

            ba+d                                            "bad", "baad", "baaad"

            ba{0,1}d                                     "bd", "bad"

            ba{0,}d                                       "bd", "bad", "baad", "baaad"

            ba{1,}d                                       "bad", "baad", "baaad"

            量词也可以和字符类一起使用,所以如果想匹配字符串bead, baed, beed, baad, bad和bed,可以使用下面的表达式:

            var regPattern = /b[ae]{1,2}d/;

            这个表达式表示:字符类[ae]可以出现最少一次,最多两次。

 

       b, 贪婪的,惰性的和支配性的量词。

           贪婪量词先看整个的字符串是否匹配。如果没有发现匹配,它就去掉该字符串中的最后一个字符,并再次尝试。如果还是没有发现匹配,

           那么再次去掉最后一个字符,这个过程会一直重复直到发现一个匹配或者字符串不剩任何字符。到目前为止讨论的所有量词都是贪婪的。

           惰性量词先看字符串中的第一个字母是否匹配。如果单独这一个字符还不够,就读入下一个字符,组成两个字符的字符串。如果还是没有

           发现匹配,惰性量词继续从字符串中添加字符直到发现匹配或者整个字符串都检查过也没有匹配。它与贪婪量词的工作方式恰好相反

           支配量词只尝试整个字符串。如果这个字符串不能产生匹配,不做进一步尝试。

           怎样表示贪婪、惰性和支配量词呢?正是完全使用星号、加号和问号。如,单独一个问号(?)是贪婪的,但一个问号后再跟一个问号(??)

           就是惰性的。要使问号成为支配量词,在后面加上一个加号(?+)。

           贪婪                     惰性                   支配                  描述

           ?                         ??                      ?+                    零次或一次出现

           *                         *?                      *+                   零次或多次出现

           +                         +?                      ++                  一次或多次出现

           {n}                     {n}?                  {n}+               恰好n次出现

           {n,m}                 {n,m}?              {n,m}+            至少n次至多m次出现

           {n,}                    {n,}?                 {n,}+              至少n次出现

           用下面这个例子说明:

           var sToMatch = "abbbaabbbaabbb1234";

           var reg1 = /.*bbb/g;           // 贪婪的, 返回"abbbaabbbaaabbb"

           var reg2 = /.*?bbb/g;         // 惰性的, 返回"abbb", "aabbb", "aaabbb"

           var reg3 = /.*+bbb/g;        // 支配的, 无返回

           注意: 浏览器对支配量词的支持还不完善。IE和Opera不支持支配量词,如果要用它就会抛出一个错误。Mozilla不会产生错误,但它会

                     将支配量词看作是贪婪的。

 

 

通义千问AI模型对接飞书机器人-集成飞书机器人(2-2) http请求地址上一篇百炼平台配置的应用地址。 阅读详情

相关推荐

Halcon相机标定实战:从参数设置到精度优化全解析

本文详细解析Halcon相机标定的全流程,从基础概念到实战技巧,涵盖参数设置、精度优化及常见问题解决方案。通过实际案例和代码示例,帮助读者掌握工业视觉项目中相机标定的关键技术,提升测量精度和系统稳定性。

weixin_29279153的博客 322

正则表达式学习笔记2

1.前言 之前的一篇文章主要是对正则表达式的基础知识的记录,不过实践方能出真知,接下来主要要结合具体的例子进行学习的。 2.具体实践 (注:在正则表达式中 "/" 是在某些语言中作为开始和结束定界符的标志存在的) (1) 手机号检验: 正则表达式:/^1[3456789]\d{9}$/ 详解: "^1" 代表从字符串开始的位置进行匹配的,开头必须是"1"; "[3456789]"代表规定第二位要...

weixin_34279579的博客 298

别再手动抄表了!用PaddleOCR超轻量模型5分钟搞定数字仪表识别(附完整Python代码)

本文介绍如何利用PaddleOCR超轻量模型快速实现工业仪表数字识别自动化。通过5行核心代码和关键预处理步骤,显著提升识别准确率至98.2%,解决传统OCR在工业场景中的体积大、抗干扰弱等问题,并提供完整Python代码和边缘部署优化方案。

weixin_31062533的博客 350

正则表达式笔记

转载:韩顺平正则表达式笔记

cfy的博客 254

Ubuntu 22.04下Minkowski Engine编译避坑指南:解决Cuda 12.2与Pytorch cu118版本冲突

本文详细介绍了在Ubuntu 22.04系统中解决Minkowski Engine编译时Cuda 12.2与Pytorch cu118版本冲突的实用方法。通过修改版本检查逻辑、创建兼容符号链接等技巧,帮助开发者顺利完成编译,并提供了性能优化建议和替代方案,确保三维点云处理任务的高效运行。

weixin_42543309的博客 162

【遥感数字图像处理(朱文泉)】各章博文链接汇总及思维导图

遥感数字图像处理(北京师范大学朱文泉教授)课程各章博文笔记汇总,及各章节思维导图

甜子yu的博客 2623

读《精通正则表达式》之思维导图笔记——第一弹

读《精通正则表达式》之思维导图笔记——第一弹**第一章知识点总结:**

TryingBestFly的博客 754

135、转动惯量辨识方法

<think>我们要求根据内容生成≤150字的文章摘要。内容是关于电机控制中转动惯量辨识的方法和工程经验。摘要需简洁概括核心:转动惯量重要性、三种方法(加减速法、正弦扫频、MRAS)、工程注意点(摩擦补偿、采样同步等)、实用建议(组合使用、滤波限幅、安全保护)。字数严格≤150。需要提炼。</think>转动惯量辨识是电机控制的关键,负载变化会导致速度环失稳。工程常用加减速法(简单可靠)、正弦扫频法(高精度)、MRAS在线辨识。实操需补偿摩擦、同步采样、控制激励幅度。建议混合使用,辨识结果需滤波限幅,并设置

2401_88858637的博客 40

正则表达式学习笔记

正则表达式学习笔记

weixin_42750888的博客 111

智能测试策略优化:平衡覆盖率、时间和资源

在软件开发过程中,测试是确保软件质量的关键环节。然而,测试工作往往面临着诸多挑战,其中如何在保证测试覆盖率的前提下,合理分配时间和资源是一个核心问题。本文章的目的在于探讨智能测试策略的优化方法,帮助软件测试团队在有限的时间和资源条件下,实现尽可能高的测试覆盖率。文章的范围涵盖了智能测试策略的核心概念、算法原理、数学模型、实际应用案例以及相关工具和资源等方面。本文将按照以下结构进行组织:首先介绍智能测试策略优化的背景和相关概念,包括核心术语和缩略词的定义;

AIGC应用创新大全的博客 620

SAP 错误消息调试之七种武器:让所有的错误消息都能被定位

目录 长生剑 - SAPGUI Where Used List 碧玉刀 - ABAP调试器观察点 霸王枪 - ABAP调试器动态断点 多情环 - ABAP代码静态扫描 孔雀翎 - SAT 离别钩 - ST05 拳头 - 迷之方法??? Jerry在2018年开始用中文在微信公众号平台上写作之前,在SAP官方社区上总共写了639篇英文博客。 其中有一篇写于2013年介绍ABAP调试技巧的博客:

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2810

正则表达式简略笔记

说明:之前提到正则表达式就头大,每次也都是看个开头就不看了,坚持不下去,这次终于完整地看完一次文档,加上之前多多少少看过的,对正则表达式算是有了整体的了解。这次笔记主要结合一培训班的课件,以Python的re模块为主。 简略笔记: 1,正则表达式(Regular Expression),正则表达式使⽤单个字符串来描述、匹配⼀系列匹配某个句法规则的字符串。简单说就是,这是一个规则,它体现为一个字...

404 Not Found 2673

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

正则表达式使用笔记

本文介绍了正则表达式的基础元字符及其用法,包括通配符.、字符集[]、重复元字符{}/*/+/?、定位符^/$以及转义符\等。通过Python代码示例演示了各种元字符的实际应用场景,如匹配特定模式的字符串、控制匹配字符数量范围等。文章还解释了贪婪匹配与懒惰匹配的区别,并提供了在线测试工具链接,方便读者实践练习。

2301_80468619的博客 1267

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

正则表达式课程笔记

正则表达式课程笔记 正则表达式是什么? 正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 正则表达式语法 普通字符 字母,数字,汉字,下划线,以及没有特殊定义的标点符号,都是“普通字符”,表达式中的的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 a 匹配a 普匹配普 转义字符 \t匹配制表...

weixin_44881107的博客 220

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

正则表达式基础个人学习笔记

正则表达式,常常缩写为 “regex” 或 “regexp”,是帮助程序员匹配、搜索和替换文本的模式。正则表达式非常强大,但可能难以阅读,因为它们使用特殊字符来做更复杂更灵活的匹配。

Sentra233的博客 2236

基本正则表达式笔记

正则表达式 用一些特定的字符串来匹配目标字符串里面的内容 笔记 import re # 单个字符的匹配 # [] \d \w \s # . 匹配单个字符:['Good', 'food'] print(re.findall(".ood","I say Good and food")) # [] 括号里面 的内容会被逐一的单个匹配 ['Good', 'food'] print(re.findall("[Gf]ood","I say Good and food")) # \d 匹配单个数字 ['4', '0']

Zeker62的博客 124

个人笔记:正则表达式+ECMAScript 6

这是本人在学习ES6和正则表达式时做的一些笔记,ES6在前半部分,正则表达式在后半部分

weixin_45235422的博客 175

正则表达式个人笔记

1.正则表达式是什么 正则表达式是用来进行文本匹配的工具,是一种专门用于处理字符串的语言 2.元字符 代码 说明 . 匹配除换行符外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符(包括空格、tab、换行等) \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 3.限定符 代码 说明 * 重复0次或多次 + 重复1次或多次 ? 重复0次或1次 {n} 重复n次 {n,} 重复

yfl15872373643的博客 188

黑马pink老师正则表达式初学笔记

正则表达式 概述 正则表达式是对象 正则表达式通常被用来检索、替换那些符合某个模式的文本 用户表单只能输入特定内容(匹配) 过滤页面内容敏感关键词(替换) 从字符串中提取特定部分(提取) 正则表达式的使用 创建 通过RegExp对象的构造函数创建 var regexp = new RegExp(/123/); 利用字面量创建 var regexp = /123/; 测试正则表达式 test()正则对象方法,用于检测字符串是否符合规则 regexpObj.test(str); 返回t

wf1793456954的博客 350

C#.Net正则表达式学习笔记

在处理字符串时,你会经常有查找符合特定条件的字符串的需求,比如判断一串电话号码是否符合格式、一个邮箱是否符合格式、一个密码是否包含了字母大小写等等。\b,即是正则表达式中规定的一个元字符(metacharacter),代表着一个单词的开头或结尾。两个单词可能会被空格和逗号分隔,但它不匹配这些,它只代表一个位置。 正则表达式(Regular expressions)用于匹配文本,使用一些定义好的匹配元字符,即“规则字符”,然后以它的逻辑去过滤筛选字符串。

这个人好有趣....hh 743
上一篇: 正则表达式笔记之一
下一篇: 正则表达式笔记之三
unicode
博客等级 码龄25年 33粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值