【总结】正则表达式

正则表达式(Regular Expresion)= regex / regexp / re
它们通常被用来做字符串的[b]验证,解析和转换[/b]。虽然正则表达式并没有完全的标准化,但它的作用却非常大,使用范围也非常广。

首先先介绍一些有用的网站(国外的,可能打开都比较慢):
1、[url]https://en.wikipedia.org/wiki/Regular_expression[/url] : 大家熟悉的,维基百科页
2、[url]http://regex.learncodethehardway.org/book/[/url] : 在线学习网站,非常的详细
3、[url]http://txt2re.com[/url] :一个提供很多种语言的在线校验正则网站 (包括 perl php python java javascript coldfusion c c++ ruby vb vbscript j# c# c++.net vb.net)
4、[url]https://swtch.com/~rsc/regexp/regexp1.html[/url] : 好文章之正则表达式是怎样工作的?
5、[url]http://shop.oreilly.com/product/9780596528126.do[/url] : oreilly精品图书系列之<Mastering Regular Expressions>,此书也有中文版,[url]http://www.amazon.cn/精通正则表达式-杰佛瑞E-F-佛瑞德/dp/B008UCHA58/ref=sr_1_2?ie=UTF8&qid=1452325307&sr=8-2&keywords=Mastering+Regular+Expressions[/url]

当然不管哪门学科,都可以深入的学习或是只是学会简单的使用,而正则表达式做为一项工具,平时工作用到的可能没有那么深入,以下是比较适合初入门语法学习者的一些语法介绍(语法学习的内容不是原创,应该是我以前刚入门的时候从前辈们的博文中总结下来的):

[color=orange][b]基础语法:[/b][/color]
[b]^ [/b]匹配输入字符串的[b]开始位置[/b]
[b]$ [/b]匹配输入字符串的[b]结束拉置[/b]
[b]\d [/b]匹配一个[b]数字字符[/b] = [0-9]
[b]+ [/b]匹配 [b]1或多个[/b]正好在它之前的那个字符,例:9+ 匹配 9, 99, 999...等
[b]? [/b]匹配 [b]0或1个[/b]正好在它之前的字符
[b]. [/b]匹配除\r\n之外的任何单个字符

基础字符:
[table]
| . | [] | ^ | $ |
[/table]

其它:
* 匹配前面的子表达式0次或多次,例:zo*能匹配 z, zoo, zooo... *等价于{0, }
{n} 确定匹配n次,n>=0;例:0{2} 能匹配: food
{n,} 至少匹配n次,n>=0;例:0{2,},不能匹配Bob,但能匹配fooooood中所有的o
\w 匹配包括下划线的任何单词字符,等价:[A-Za-z0-9_]
[xyz] 字符集合,匹配所包含的任意一个字符,例:[abc] 匹配plain中的a
[A-Z] 字符范围
\n 换行
{i},{i, j} 匹配指定数目的字符,表示长度


[color=orange][b]等价:[/b][/color]
? 等价于匹配长度 {0, 1}
* 等价于匹配长度 {0, }
+ 等价于匹配长度 {1, }
\d 等价于 [0-9]
\w 等价于 [A-Za-z0-9_]

[color=orange][b]分割语法[/b][/color]
[ ] 包含
[^] 不包含
{ } 匹配长度

如:^([]{})([]{})([]{})$ = 开始([包含内容]{长度})(..)结束

---------------------------------------------------------------------
[color=orange][b]例子:[/b][/color]
1、匹配整数
^\d+$ 等于 ^[0-9]{1,}$
解释:开始[数字0-9]{长度大于等于1}结束 = 长度大于1的数,即整数

2、验证用户名或密码
^[a-zA-Z]\w{5,15}$
解释:开始[目标字符为英文字符][下划线、英文或数字]{长度为5-15}结束 = 由下划线、英文、数字组成的5-15位的字符,首位必须是英文字母。

3、匹配test/开头,但结尾不能为.html结尾的路径
test/.*?[^\.html]
解释:test/[除\n\r的任何字符]{长数为0或1}[不包含.html]
[^\.html] 这里的\. 等价于目标字符:. (点本身),原因是因为.本来是正则语法里的语法之一,所以用\ 来先转义

---------------------------------------------------------------------
[color=orange][b]JAVA端使用:[/b][/color]
1、验证目标字符是否匹配
String reg = "^\\d+$";
String str = "10086";
boolean result = str.matches(reg));
// result: true



2、按格式截取字符

String str = "&id=10086&name=helloworld";
Pattern p = Pattern.compile("&id=([^&]*)");
Matcher m = p.matcher(str);
if (m.find()) {
String result = m.group(1);
}
// result: 10086
C#实战YOLO26物体检测:从ONNX模型转换到工业级部署全复盘 本文介绍了在C#上位机中集成YOLO26模型实现工业产线零件检测的实战方案。针对工业场景对实时性(单帧推理≤100ms)、轻量化和易部署的需求,选择YOLO26模型相比YOLOv8在推理速度提升30%且模型体积更小。文章详细拆解了从模型转换(PyTorch转ONNX)、C#推理引擎封装到部署优化的全流程,重点解决了ONNX兼容性、坐标偏移、GPU降级等工业落地中的典型问题。通过解耦设计、性能优化和异常处理机制,最终在工控机(i5-8500+GTX1650)上实现60ms的单帧推理速度,为工业检测项目提供了可 阅读详情

相关推荐

LT码与Raptor码的性能仿真

从数据分析看来,在数据块大小较小时(100 - 200 左右 ),LT 码和 Raptor 码的平均冗余符号数量差距相对较小,但 LT 码的冗余符号数量始终高于 Raptor 码。现在采用MATLAB进行仿真,直观展示不同数据块大小下,两种解码方式的解码时间差异.如图4.1所示,LT解码(绿色圆点折线)LT 解码方式的解码时间随数据块大小的变化情况。从实际应用的角度来看,LT码由于其简单的编码机制,适用于资源受限或对编码效率要求较高的场景,但其较高的解码复杂度限制了其在一些实时性要求较高的应用中的使用。

道亦无名 1135

正则表达式Regular expression

Ⅰ. 简介 正则表达式(regular expression)是一种字符串匹配模式或者规则,它可以用来检索、替换那些符合特定规则的文本。正则表达式几乎适用于所有编程语言,无论是前端语言 JavaScript,还是诸如许多后端语言,比如 Python、Java、C# 等,这些语言都提供了相应的函数、模块来支持正则表达式,比如 Python 的 re 模块就提供了正则表达式的常用方法。 Ⅱ. 正则表达式语法 1) 元字符 正则表达式元字符 元字符 匹配内容 . 匹配除换行符以外的任

noobiee的博客 1247

BugkuCTF-PWN题pwn2-overflow超详细讲解

解题思路 1)计算出get_shell_的地址偏移量 2)算出来之后就直接溢出到后门函数 知识点 x64函数调用规则 解题之前我们先学下linux x64的函数调用规则。 x64机器在调用某个函数前,比如int func(int a, int b, int c, int d, int e, int f, int g, int h),首先他会把前6个参数从左往右存入到寄存器rdi、rsi、rdx、rcx、r8、r9,其余参数存入到栈里,保存的顺序是从右往左入栈。比如abcdef会存入到寄存器里,然后一次入栈h

am_03的博客 3013

正则表达式(RegularExpressions)

1、正则表达式 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。 1.1、概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 1.2、正则表达式可以做什么 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 给定的字符串是

jsxllht的博客 2037

手把手教你用Anaconda安装李沐d2l-zh包(附常见报错解决方案)

本文提供了一份详尽的Anaconda环境下安装李沐d2l-zh包的实战指南。文章从创建虚拟环境、配置国内镜像源加速下载入手,分步讲解核心依赖的预安装策略,并重点剖析了安装过程中常见的报错及其解决方法,旨在帮助初学者和开发者高效、稳定地搭建深度学习实验环境。

efc1234567的博客 1010

如何用Lmcache+vllm优化KVcache存储?CPU与SSD性能实测对比

本文通过实测对比,详细介绍了如何利用Lmcache+vLLM将大模型推理中的KV Cache卸载至CPU内存或SSD硬盘,以解决长上下文场景下的GPU显存瓶颈。测试数据显示,CPU卸载方案在首字延迟(TTFT)上显著优于SSD方案,但SSD方案在存储成本上更具优势。文章提供了完整的配置指南、性能数据分析和生产环境选型建议。

fire9的博客 984

正则表达式 regular expression

1、正则表达式的语法模块:普通字符、特殊字符、标准字符集、自定义字符集、量词表达式、零宽表达式; 2、常用几种正则表达式; 3、java中使用正则表达式。

lintiddler的博客 2398

手把手教你逆向分析某里系bx-ua参数(以225版本为例)

本文详细解析了某里系应用bx-ua参数的逆向工程实战方法,重点拆解其三层加密体系(二进制加密、字符替换和Base64编码)。通过工具链配置和实战案例,帮助开发者掌握逆向分析技巧,适用于合法合规的安全研究和加密技术评估场景。

weixin_33220360的博客 407

正则表达式(Regular Expression)基本语法

一、简介 为什么需要正则表达式? 文本的复杂处理正则表达式的优势和用途? 一种强大而灵活的文本处理工具; 大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式。正则表达式定义: 正如它的名字一样,是描述了一个规则,通过这个规则可以匹配一类字符串。 学习正则表达式很大程度上就是学习正则表达式的语法现则。开发中如何使用? 开发中使用正则表达式的流程: 分析所要匹配的数据,写出测试

吃果冻不吐果冻皮 2万+

机器人系统能用MQTT5.0代替ROS2吗?

更为灵活和友好的方案是通过把ROS(Robot Operating System)与MQTT(Message Queuing Telemetry Transport)协议相结合的解决方案,利用MQTT的轻量级、跨平台和广泛适用性特点,扩展ROS系统的通信能力,或将非ROS系统接入ROS网络。

QzmAIoT 2160

复现CVE-2014-085(Apache ZooKeeper 未授权访问漏洞)

默认安装配置完的zookeeper允许未授权访问,管理员未配置访问控制列表(ACL)。导致攻击者可以在默认开放的2181端口下通过执行envi命令获得大量敏感信息(系统名称、java环境)导致任意用户可以在网络不受限的情况下进行未授权访问读取数据。

记录并分享学习安全的知识点.. 2173

Regular Expression 正则表达式 语法规则及使用

正则表达式:使用单个字符串来描述、匹配一系列符合某个规则的字符串。 几个常用的验证规则: 1.身份证号:ValidationExpression="\d{17}[\d|X]|\d{15}" 2.邮编:ValidationExpression="\d{6}" 3.电话号码:ValidationExpression="((\d{3})|\d{3}-)?\d{8}" 4.电子邮箱:ValidationE...

u010833391的博客 6367

基于Claude Code的 规范驱动开发(SDD)指南

传统的AI辅助开发,如同手工作坊,我们向AI描述想法,它给我们零散的部件,我们再手动打磨、组装。这个过程充满了不确定性、信息损耗和重复劳动。本指南将尝试引领您进入软件开发的“工业时代”。在这里,

形上得其象,形下合于数;阴阳自济,玄理自明。 2747

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

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

qq_40531442的博客 2167

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python正则表达式

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

2301_81704383的博客 1321

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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

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

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

shell 正则表达式详解

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

weixin_48814356的博客 3002

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

正则表达式

《正则表达式快速入门》笔记

卫生纸不够用的博客 1320

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

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

Giyn 4782

正则表达式总结

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

lmb55的专栏 2269
上一篇: 【分享】《程序员的思维修炼:开发认知潜能的九堂课》读后感
下一篇: 【总结】Java基础之Map:HashMap vs. LinkedHashMap vs. TreeMap vs. ConcurrentHashMap
angelbill3
博客等级 码龄18年 3粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值