正则表达式学习总结(超赞!!!)

[0352]基于JAVA的停车场收费智慧管理系统的设计与实现 其次,从经营管理层面考虑,本系统涵盖了丰富的月卡管理和财务结算功能,如月卡用户管理、缴费、注销、挂失、解挂、补办等全流程服务,以及临保和月保的结算汇总与欠费查询等功能,这不仅有助于规范停车场的日常运营管理,更能有效提高财务管理效率,降低运营成本,实现精细化、数字化的财务管控。综上所述,本课题计划研发的基于Java的停车场收费智慧管理系统将在现有研究成果的基础上,重点优化月卡用户全生命周期管理和财务统计分析功能,以满足现代停车场高效、精准、安全的管理需求,紧跟行业发展趋势,为推动智慧城市的建设贡献一份力量。 阅读详情
我是技术搬运工,好东西当然要和大家分享啦 原文地址

概述

正则表达式用于文本内容的查找和替换。

正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。

一个问题往往可以用多种正则表达式方案来解决。

正则表达式在线工具

匹配单个字符

正则表达式一般是区分大小写的,但是也有些实现是不区分。

. 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符;

\ 是元字符,表示它有特殊的含义,而不是字符本身的含义。如果需要匹配 . ,那么要用 \ 进行转义,即在 . 前面加上 \ 。

正则表达式

nam.

匹配结果

My name is Zheng.

匹配一组字符

[ ] 定义一个字符集合;

0-9、a-z 定义了一个字符区间,区间使用 ASCII 码来确定。字符区间只能用在 [ ] 之间,因此 - 元字符只有在 [ ] 之间才是元字符,在 [ ] 之外就是一个普通字符;

^ 是取非操作,必须在 [ ] 字符集合中使用;

应用

匹配以 abc 为开头,并且最后一个字母不为数字的字符串:

正则表达式

abc[^0-9]

匹配结果

  1. abcd
  2. abc1
  3. abc2

使用元字符

匹配空白字符

元字符说明
[\b]回退(删除)一个字符
\f换页符
\n换行符
\r回车符
\t制表符
\v垂直制表符

\r\n 是 Windows 中的文本行结束标签,在 Unix/Linux 则是 \n ;\r\n\r\n 可以匹配 Windows 下的空白行,因为它将匹配两个连续的行尾标签,而这正是两条记录之间的空白行;

. 是元字符,前提是没有对它们进行转义; f 和 n 也是元字符,但是前提是对他们进行了转义。

匹配特定的字符类别

1. 数字元字符

元字符说明
\d数字字符,等价于 [0-9]
\D非数字字符,等价于 [^0-9]

2. 字母数字元字符

元字符说明
\w大小写字母,下划线和数字,等价于 [a-zA-Z0-9_]
\W对 \w 取非

3. 空白字符元字符

元字符说明
\s任何一个空白字符,等价于 [\f\n\r\t\v]
\S对 \s 取非

\x 匹配十六进制字符,\0 匹配八进制,例如 \x0A 对应 ASCII 字符 10 ,等价于 \n,也就是它会匹配 \n 。

使用 POSIX 字符类

字符类说明
[:alnum:]字母数字字符
[:alpha:]字母字符
[:cntrl:]控制字符
[:digit:]数字字符
[:graph:]非空白字符 ( 非空格、控制字符等 )
[:lower:]小写字母
[:print:]与 [:graph:] 相似,但是包含空格字符
[:punct:]标点字符
[:space:]所有的空白字符 ( 换行符、空格、制表符 )
[:upper:]大写字母
[:xdigit:]允许十六进制的数字 (0-9a-fA-F)

并不是所有正则表达式实现都支持 POSIX 字符类,也不一定使用它。

使用时需要用两对方括号,例如 [[:alpha:]]。

重复匹配

+ 匹配 1 个或者多个字符, * 匹配 0 个或者多个,? 匹配 0 个或者 1 个。

应用

匹配邮箱地址。

正则表达式

[\w.]+@\w+.\w+

[\w.] 匹配的是字母数字或者 . ,在其后面加上 + ,表示匹配多次。在字符集合 [ ] 里,. 不是元字符;

匹配结果

abc.def@qq.com

为了可读性,常常把转义的字符放到字符集合 [ ] 中,但是含义是相同的。

\w+@\w+.\w+
[\w]+@[\w]+.[\w]+

{n} 匹配 n 个字符,{m, n} 匹配 m~n 个字符,{m,} 至少匹配 m 个字符;

* 和 + 都是贪婪型元字符,会匹配最多的内容,在元字符后面加 ? 可以转换为懒惰型元字符,例如 *?、+? 和 {m, n}? 。

正则表达式

a.+c

由于 + 是贪婪型的,因此 .+ 会匹配更可能多的内容,所以会把整个 abcabcabc 文本都匹配,而不是只匹配前面的 abc 文本。用懒惰型可以实现匹配前面的。

匹配结果

abcabcabc

位置匹配

单词边界

\b 可以匹配一个单词的边界,边界是指位于 \w 和 \W 之间的位置;\B 匹配一个不是单词边界的位置。

\b 只匹配位置,不匹配字符,因此 \babc\b 匹配出来的结果为 3 个字符。

字符串边界

^ 匹配整个字符串的开头,$ 匹配结尾。

^ 元字符在字符集合中用作求非,在字符集合外用作匹配字符串的开头。

使用 (?m) 来打开分行匹配模式,在该模式下,换行被当做字符串的边界。

应用

匹配代码中以 // 开始的注释行

正则表达式

(?m)^\s*//.*$

如果没用 (?m),则只会匹配 // 注释 1 以及之后的所有内容,因为 * 是贪婪型的。用了分行匹配模式之后,换行符被当成是字符串分隔符,因此能正确匹配出两个注释内容。

匹配结果

  1. public void fun() {
  2.      // 注释 1
  3.      int a = 1;
  4.      int b = 2;
  5.      // 注释 2
  6.      int c = a + b;
  7. }

使用子表达式

使用 ( ) 定义一个子表达式。子表达式的内容可以当成一个独立元素,即可以将它看成一个字符,并且使用 * 等元字符。

子表达式可以嵌套,但是嵌套层次过深会变得很难理解。

正则表达式

(ab) {2,}

匹配结果

ababab

| 是或元字符,它把左边和右边所有的部分都看成单独的两个部分,两个部分只要有一个匹配就行。

(19|20)\d{2}

匹配结果

  1. 1900
  2. 2010
  3. 1020

应用

匹配 IP 地址。IP 地址中每部分都是 0-255 的数字,用正则表达式匹配时以下情况是合法的:

  1. 一位或者两位的数字
  2. 1 开头的三位数
  3. 2 开头,第 2 位是 0-4 的三位数
  4. 25 开头,第 3 位是 0-5 的三位数

正则表达式

(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.) {3}(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])))

匹配结果

  1. 192.168.0.1
  2. 555.555.555.555

回溯引用

回溯引用使用 \n 来引用某个子表达式,其中 n 代表的是子表达式的序号,从 1 开始。它和子表达式匹配的内容一致,比如子表达式匹配到 abc ,那么回溯引用部分也需要匹配 abc 。

应用

匹配 HTML 中合法的标题元素。

正则表达式

\1 将回溯引用子表达式 (h[1-6]) 匹配的内容,也就是说必须和子表达式匹配的内容一致。

<(h[1-6])>\w*?</\1>

匹配结果

  1. <h1>x</h1>
  2. <h2>x</h2>
  3. <h3>x</h1>

替换

需要用到两个正则表达式。

应用

修改电话号码格式。

文本

313-555-1234

查找正则表达式

(\d{3})(-)(\d{3})(-)(\d{4})

替换正则表达式

在第一个子表达式查找的结果加上 () ,然后加一个空格,在第三个和第五个字表达式查找的结果中间加上 - 进行分隔。

($1) $3-$5

结果

(313) 555-1234

大小写转换

元字符说明
\l把下个字符转换为小写
\u把下个字符转换为大写
\L把\L 和\E 之间的字符全部转换为小写
\U把\U 和\E 之间的字符全部转换为大写
\E结束\L 或者\U

应用

把文本的第二个和第三个字符转换为大写。

文本

abcd

查找

(\w)(\w{2})(\w)

替换

$1\U$2\E$3

结果

aBCd

前后查找

前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。向前查找用 ?= 来定义,它规定了尾部匹配的内容,这个匹配的内容在 ?= 之后定义。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。向后匹配用 ?<= 定义。

应用

查找出邮件地址 @ 字符前面的部分。

正则表达式

\w+(?=@)

结果

abc @qq.com

对向前和向后查找取非,只要把 = 替换成 ! 即可,比如 (?=) 替换成 (?!) 。取非操作使得匹配那些首尾不符合要求的内容。

嵌入条件

回溯引用条件

条件判断为某个子表达式是否匹配,如果匹配则需要继续匹配条件表达式后面的内容。

正则表达式

子表达式 (\() 匹配一个左括号,其后的 ? 表示匹配 0 个或者 1 个。 ?(1) 为条件,当子表达式 1 匹配时条件成立,需要执行 ) 匹配,也就是匹配右括号。

(\()?abc(?(1)\))

结果

  1. (abc)
  2. abc
  3. (abc

前后查找条件

条件为定义的首尾是否匹配,如果匹配,则继续执行后面的匹配。注意,首尾不包含在匹配的内容中。

正则表达式

?(?=-) 为前向查找条件,只有在以 - 为前向查找的结尾能匹配 \d{5} ,才继续匹配 -\d{4} 。

\d{5}(?(?=-)-\d{4})

结果

  1. 11111
  2. 22222-
  3. 33333-4444
手把手教你用fusb302实现PD快充:从驱动移植到实战调试(附源码) 本文详细解析了基于FUSB302芯片实现USB PD快充的完整开发流程。内容涵盖芯片选型、硬件设计要点、Linux驱动移植与内核集成,并重点剖析了PD协议交互中的关键调试技巧,如“死亡15ms”时序问题与中断模式选择。文章通过实战经验,帮助嵌入式开发者高效完成从驱动移植到系统集成的全链路开发,并附有源码参考。 阅读详情

相关推荐

【动态规划】背包问题(详细总结,很全)

暴力的解法是指数级别的时间复杂度。进而才需要动态规划的解法来进行优化!背包问题是动态规划(Dynamic Planning) 里的非常重要的一部分,关于几种常见的背包,其关系如下:在解决背包问题的时候,我们通常都是按照如下五部来逐步分析,把这五部都搞透了,算是对动规来理解深入了。二维dp数组01背包,先遍历物品还是先遍历背包都是可以的,且第二层for循环是从小到大遍历一维dp数组01背包,只能先遍历物品再遍历背包容量,且第二层for循环是从大到小遍历。求组合数:外层遍历物品,内层遍历背包。

m0_51370744的博客 4万+

java中使用正则表达式

正则表达式是含有一些具体意义的字符的字符串,这些字符称为正则表达式的元字符。 正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一个格式 元字符表 元字符 正则表达中的写法 意义 . . 代表任意一个字符 \d \\d 代表0~9的任意一个数字 \D \\D 代表任意一个非数字字符 \s \\s 代表空白字...

cf_083333的博客 922

OCEAN 电路仿真

介绍利用 Cadence OCEAN 进行电路脚本仿真的方法

weixin_43249158的博客 4402

正则表达式

4-16位字母数字下划线:              /^[\w]{4,16}$/

woaipaiqiu的专栏 564

ORB-SLAM3单目摄像头

home/wheeltec-client/workspace/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src目录下找到:ros_mono.cc文件,打开找到并修改成我们自己摄像头的订阅话题(usb_cam/imahe_raw)即相机设置文件,官方提供的是Asus.yaml,可以另复制命名一个文件My_camera.yaml,将里面的相机参数修改成自己标定过的参数。sudoaptinstalllibeieng3-dev#命令安装的版本是eigen。

疯狂的石头 742

利用LDA进行主题建模,用困惑度和一致性曲线选取最优主题数

如果困惑度和一致性曲线效果图较好,确定了主题数量后,再单独跑一下2里面的程序。2中topic为5是我主观设置的,不一定为最优。

m0_56327159的博客 4223

记正则表达式一则小小填坑记

需要匹配的内容如下: “0x12 0x12 0x12” 三个重复的十六进制字符串,一开始的做法是: (0x[0-9a-fA-F]{2} ?){3} 该正则表达式中[0-9a-fA-F]是指0-9的数字,或者a-f的字母,或者A-F的字母。{2}是指重复2次。 其中?的作用是:0个或者1个。因此这样做是不符合的,因为0个空格就导致了这样0x120x120x12。 第二次的改法是: (0x[0-9...

Fighting_Boss的博客 1470

QT编程之PCM音频播放与采集

Qt5/Qt6通用方案。

深之JohnChen的专栏 1171

notepadd++正则表达式大小写转换

示例1:将语句 test this sentence 转为大写 查找:^.*$ 替换:\U$0 或------------ 查找:^(.*)$ 替换:\U\1 或 \U$1 示例2:将语句 TEST THIS SENTENCE 转为小写 查找:^.*$ 替换:\L$0 或------------ 查找:^(.*)$ ...

aa781398079的博客 1636

河洛理数【陈抟】每月月卦推演每日运卦

Step2:每卦中的日爻遇到二十四节气中的当日为节(月初)或气(月中)的时候,所代表的日期需要变更。正常来说,屯卦分别代表初一到初六,但是由于当月初二时立秋节,所以初爻就不能作为初一、而是要作为立秋节开始时(文中还精算到了立秋是从初二的午时开始),如下。说的代表月运的基础卦上进行当月日卦的推演方式。老样子,我们还是按照书中举得例子卦在这边进行一步步的推演,最后做总结。Step1:从月卦爻下一爻开始,自下而上,进行五个爻的爻变,新推演的每个卦代表六天,如下。假设当月月卦是即济卦,月爻在二爻,如图所示(

Daniel专栏 764

损失函数大汇总(五十三)(Boundary Loss附公式推导与代码)

摘要 Boundary Loss是一种针对图像分割任务的新型损失函数,特别适用于高度类别不平衡的细粒度分割场景。与传统的区域型损失(如Dice、交叉熵)不同,它通过计算预测边界与真实边界之间的距离来优化模型,更关注边界精度而非区域重叠。核心思想是利用距离图(distance map)将边界约束转化为区域积分形式,实现端到端训练。具体实现中,损失函数为预测概率与距离图的点积,梯度仅取决于距离图,具有明确的空间引导性。相比区域型损失,Boundary Loss能更好处理小目标、细长结构等边界敏感任务,可与Dic

悦学共鸣,温柔以待,汇聚光芒,共同成长 240

【正则表达式】一文看懂正则表达式

正则表达式

GodFatherMisZhao的博客 1724

Neo4j:入门基础(二)之导入CSV文件

导入CSV文件的方式  主要的两种方式如下:   1、使用 Cypher 命令LOAD CSV,这种方式可以处理中小型数据(可达10 million条记录)   2、使用批量导入工具neo4j-admin ,用来直接导入大数据集 三、上述方式具体导入过程   1、Cypher 命令LOAD CSV 参数 1、USING PERIODIC COMMIT 300 使用批量提交,每满300条提交一次,防止内存溢出 2、WITH HEADERS 从文件中读取第一行作为参数名,...

Puzzle的博客 3万+

超简单正则表达式入门教程

你好呀,我是阿德。 正则表达式是在程序或命令行中查找和替换文本的强大工具。熟悉最常见的正则表达式符号,以及如何使用它们,对于程序员来说是必不可少的技能。 正则表达式是在搜索中需要匹配的特殊字符串,使用范围很广,比如Java、Python 等编程语言,grep、sed 等命令行,还有 VSCode、Vim等编辑器。 学习正则表达式的唯一方法就是 learning by doing。 正则表达式的规则太多了,学会后不怎么用就又忘了,介绍各种规则前先分享给你一张图, 强烈建议你点赞收藏,然后每天看一眼,

baidu_36639782的博客 4330

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

从零开始学习正则表达式,一篇搞定!(超全面极速版)

(一)正则表达式简介(一)正则表达式简介正则表达式是由一些具有特殊含义的字符组成的字符串,是由字母和符号组成的特殊文本,它可以用来从文本中查找、替换符合规则的字符串。在表单验证、Url映射等处都会经常用到。一个正则表达式匹配主体字符串的模式是从左到右正则表达式也称为"Regular expression",通常简称为"regex" "regexp"(二)正则表达式字符基础字面量:字面量是指直接匹配特定字符本身的内容,例如 ‘a’ 就是一个字符字面量,表示匹配字符’a’。

m0_62683981的博客 3690

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python爬虫实战, QQ空间自动点赞

QQ空间自动点赞 前景提要 目标确定 分析介绍 登陆获取cookie 寻找XML 寻找可变参数 获取第一个空间动态 寻找点赞所需的URL 寻找可变参数 功能提升到秒赞 全部代码 最后还是希望你们能给我点一波小小的关注。 奉上自己诚挚的爱心???? 前景提要 因为我周围的小伙伴们天天跟我说的最多的一句话就是:空间第一条点赞。 所以说我还不如直接做一个自动点赞的代码呢,免得天天催我点赞。 很多人学习pytho

Python_sn的博客 788

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Python 正则表达式学习之旅

记得第一次用match方法,我想在 “today is a sunny day” 里找 “sunny”,写了re.match(r'sunny', 'today is a sunny day'),结果返回None,当时特别困惑。学习正则表达式的过程,就像一场充满挑战的冒险。于是,我开始了大量的实操,慢慢发现这些元字符和操作符组合起来,真的能创造出千变万化的匹配模式,就像用不同的积木块搭建出各种奇妙的建筑!正则表达式里的元字符和操作符,是最让我头疼的部分,感觉它们就像神秘的魔法符号,每个都有独特的含义和用法。

2301_81089028的博客 1182

【正则表达式】regex101超好用的正则表达式测试和学习工具(内含使用教程、Python和C#正则表达式代码示例)

regex101是一个在线的正则表达式测试和学习工具,可以帮助用户测试和调试正则表达式。2. 在左侧的输入框中输入要匹配的文本。3. 在上方的正则表达式输入框中输入你的正则表达式。4. 选择正则表达式的语法类型(如PCRE、JavaScript等)。5. 点击“Run”按钮,查看正则表达式是否匹配输入的文本。6. 如果正则表达式有错误,regex101会在右侧的解释器窗口中显示错误信息。

QHCV的博客 5831

Python爬虫实战 --实现 QQ空间自动点赞

QQ空间自动点赞 前景提要 目标确定 分析介绍 登陆获取cookie 寻找XML 寻找可变参数 获取第一个空间动态 寻找点赞所需的URL 寻找可变参数 功能提升到秒赞 全部代码 最后还是希望你们能给我点一波小小的关注。 奉上自己诚挚的爱心???? 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。

Python_sn的博客 674

我在 GitHub 发现了一款超好玩的正则表达式神器!

‍‍公众号关注“GitHubDaily”设为 “星标”,每天带你逛 GitHub!大家好,我是小 G。相信各位在学习编程的道路上,正则表达式都曾是你们挥之不去的梦魇之一。各类字符、匹配模...

GitHubDaily 1116

正则表达式学习练习相关网址

qq_39980997的博客 1245

正则表达式学习

匹配单个汉字字符,不考虑位置。匹配一个或多个连续的汉字字符,且这些汉字必须出现在输入字符串的末尾。在实际应用中,选择哪个正则表达式取决于你的具体需求。如果你只需要检查字符串中是否包含汉字(无论位置如何),则使用。如果你需要检查字符串是否以连续的汉字结尾,则使用。

Aliano217的博客 1022

正则可视化工具:学习和编写正则表达式的利器

正则可视化工具作为一种辅助工具,为学习和编写正则表达式提供了便利和支持。它具有可视化表达、即时反馈、交互式学习、错误分析、可视化调试和可重用性等优点,可以帮助用户更好地理解和编写正则表达式,提高工作效率。在学习和教学、正则表达式编写、测试和调试、数据提取和匹配等领域,正则可视化工具都有广泛的应用。通过本文的介绍,希望读者能够更好地了解正则可视化工具的优势和应用场景,并在实际工作中选择合适的工具,提升正则表达式的编写和处理能力。

https://blog.cmdragon.cn/ 1891

正则表达式 学习

1. 正则表达式(Regular Expression) 2. 正则表达式语法: + ,* ,? 3. 正则表达式语法 [...] 4. 非打印字符 5. 特殊字符 6. 限定符 7. 贪婪和非贪婪 8. 定位符 9. 选择 10. 正则表达式 修饰符 11. 元字符 和 正则表达式的优先级

探索技术与实践的旅程,分享编程经验与工具使用心得,助力开发者提升技能。 3639

正则表达式学习的故事

[size=large] 做为程序猿,我们肯定或多或少的使用过正则表达式。 这时候你可能去网上拷贝一段代码,像验证邮箱,验证网址,验证只包含数字或 字母的密码等,copy很容易。但是你想过要多学点正则的东西了吗?或者你从学 习某一门编程语言的过程中接触到了一些,但是感觉还是不够用,想多学点。如 果真的是这样的话,我建议你去看书吧,因为这时候一本完整介绍正则的书籍带 给你...

eyeit2000 173

【正则表达式】粗浅学习

正则表达式符号语法学习

自然 1273
上一篇: Git总结(超赞!!!)
下一篇: 分布式问题分析(超赞!!!)
普通网友
博客等级 码龄9年 489粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值