10分钟快速入门正则表达式

在力扣上看了一本付费书籍,终于让我入门了正则表达事...

问题:

"^1[3-9]\\d{9}$" 是啥意思

读完本篇小笔记,你就知道,啥是"^1[3-9]\\d{9}$" 这个是啥意思了。

首先,正则表达式,这个名字很拗口。其实,它是“正规、规则”的意思。常用来匹配字符串,看字符串,是否符号某种规则。

这样一说,你是不是就明白了?

其次,^和$是表示正则表达式的开头和结尾。这个理解起来也不难的对吧?

接着,我们先看\\d。

其实我之前看到过好几次,一直不知道\\d啥意思。今天终于懂了。
实际上

  1. d 是digital \d 表示匹配一个数字
  2. w是word \w表示匹配一位字符(下划线,英文字母)
  3. s 是space \s表示匹配一个空格

但是为啥那里写的是\\d 呢?

因为“\” 是特殊字符,需要转义,所以多加了一个"\"。写出来就是"\\d",表示匹配数字,懂了不

d、w、s这三个字母可以记作「大巫师」(原作者称)。
DWS表示相反的匹配,比\\D表示不能匹配非数字的字符串。

那么{9}又是什么意思呢?

我们先来看最简单的正则,比如.表示匹配1位,..表示匹配2位,...表示匹配3位.,以此类推:

System.out.println("a".matches("."));
System.out.println("a".matches(".."));

//第一次输出结果是true ,第二个是false。你可以试试


但是如果匹配10000位,要写10000个"."吗?

不用的。人类是会偷懒滴

可以用{}几位到几位

{1}表示匹配1位

{1,}表示匹配1到+无数个

{1,2}表示匹配1-2次。
所以\\d{9} 表示匹配9位数字


小练习:

13 ~ 19 开头的字符串才可能是手机号码。请写一个正则。
答案:1[3456789]\\d{9} 或者 1[3-9]\\d{9}


[]表示这个位置的数字或字符只能从[]这里面选

[3456789]因为是连续的,所以可以写成[3-9]。同理[a-z]和[A-Z]表示,匹配所有小写字母和大写字母。

* ? + 

 * 表示 {0,},意思是匹配 0 到无数次;

+ 表示 {1,},意思是匹配 1 到无数次;

? 表示 {0,1},也就是匹配 0 ~ 1 次。

这里面有个概念 0次匹配,什么意思呢?
其实就是a* 可以匹配空字符串,一个字符、两个字符,以此类推。但是,它不能匹配其他字符,例如b字符。

概念如果不理解,就一直问,打破砂锅问到底,问到自己会。不然,这个问题就一直堵着。很多东西都不懂了。
就是这样!
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/672146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

告别mPDF迎来TCPDF和中文打印遇到的问题

mPDF是一个用PHP编写的开源PDF生成库。它最初由Claus Holler创建,于2004年发布。原来用开源软件打印中文没有问题,最近发现新的软件包中mPDF被TCPDF代替了,当然如果只用西文的PDF是没有发现问题,但要打印中文就有点抓瞎了如图1&am…

为什么深仇大恨可以刻骨铭心?背诵课文有哪些方法?为什么这么难记住?历史上有没有过目不忘的人或好的记忆方案?超级学习方法1刻脑

为什么深仇大恨可以刻骨铭心? 深仇大恨能刻骨铭心主要是因为强烈的情绪体验对人的记忆有着深远的影响。这种现象可以从心理学和神经科学的角度来解释: 心理学视角 情绪加强记忆:情绪激烈的事件比那些情绪中性的事件更容易被记住。这是因为强…

我的PyTorch模型比内存还大,怎么训练呀?

原文:我的PyTorch模型比内存还大,怎么训练呀? - 知乎 看了一篇比较老(21年4月文章)的不大可能训练优化方案,保存起来以后研究一下。 随着深度学习的飞速发展,模型越来越臃肿,哦不&a…

vue element 组件 form深层 :prop 验证失效问题解决

此图源自官网 借鉴。 当我们简单单层验证的时候发现是没有问题的,但是有的时候可能会涉及到深层prop,发现在去绑定的时候就不生效了。例如我们在form单里面循环验证,在去循环数据验证。 就如下图的写法了 :prop"pumplist. i .device…

Redis缓存设计及优化

缓存设计 缓存穿透 缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后…

Pandas 对带有 Multi-column(多列名称) 的数据排序并写入 Excel 中

Pandas 从Excel 中读取带有 Multi-column的数据 正文 正文 我们使用如下方式写入数据: import pandas as pd import numpy as npdf pd.DataFrame(np.array([[10, 2, 0], [6, 1, 3], [8, 10, 7], [1, 3, 7]]), columns[[Number, Name, Name, ], [col 1, col 2, co…

Spring Cloud Netflix Eureka的参数调优

下面主要分为Client端和Server端两大类进行简述,Eureka的几个核心参数 客户端参数 Client端的核心参数 参数默认值说明eureka.client.availability-zones告知Client有哪些region以及availability-zones,支持配置修改运行时生效eureka.client.filter-o…

数据结构——C/栈和队列

🌈个人主页:慢了半拍 🔥 创作专栏:《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》 🏆我的格言:一切只是时间问题。 ​ 1.栈 1.1栈的概念及结构 栈:一种特…

WPF是不是垂垂老矣啦?平替它的框架还有哪些

WPF(Windows Presentation Foundation)是微软推出的一种用于创建 Windows 应用程序的用户界面框架。WPF最初是在2006年11月推出的,它是.NET Framework 3.0的一部分,为开发人员提供了一种基于 XAML 的方式来构建丰富的用户界面。 W…

你的代码很丑吗?试试这款高颜值代码字体

Monaspace 是有 GitHub 开源的代码字体,包含 5 种变形字体的等宽代码字体家族,颜值 Up,很难不喜欢。 来看一下这 5 种字体分别是: 1️⃣ Radon 手写风格字体 2️⃣ Krypton 机械风格字体 3️⃣ Xenon 衬线风格字体 4️⃣ Argon…

【高频SQL题目】1731.每位经理的下属员工数量

题目: Table: Employees ----------------------- | Column Name | Type | ----------------------- | employee_id | int | | name | varchar | | reports_to | int | | age | int | ----------------------- employee_id 是…

【C++二维前缀和】黑格覆盖

题目描述 在一张由 M * N 个小正方形格子组成的矩形纸张上,有 k 个格子被涂成了黑色。给你一张由 m * n 个同样小正方形组成的矩形卡片,请问该卡片最多能一次性覆盖多少个黑格子? 输入 输入共 k1 行: 第 1 行为 5 个整数 M、N、…

LeetCode每日一题 | LCP 30. 魔塔游戏

文章目录 题目描述问题分析程序代码 题目描述 原题链接 小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值&#xff1b…

C#的Char 结构的IsLetterOrDigit(Char)的方法

目录 一、Char 结构的方法 二、Char.IsLetterOrDigit 方法 1.Char.IsLetterOrDigit(Char)用法 2.IsLetterOrDigit(String, Int32)方法 三、Char.IsLetter 方法 1.IsLetter(Char) 2.IsLetter(String, Int32) 四、Char.IsDigit 方法 1. IsDigit(String, Int32) 2.IsDig…

【ES数据可视化】kibana实现数据大屏

目录 1.概述 2.绘制数据大屏 2.1.准备数据 2.2.绘制大屏 3.嵌入项目中 1.概述 再来重新认识一下kibana: Kibana 是一个用于数据可视化和分析的开源工具,是 Elastic Stack(以前称为 ELK Stack)中的一部分,由 Ela…

推理系统学习笔记

一些学习资料 最近对MLsys比较感兴趣,遂找些资料开始学习一下 https://fazzie-key.cool/2023/02/21/MLsys/https://qiankunli.github.io/2023/12/16/llm_inference.htmlhttps://dlsyscourse.orghttps://github.com/chenzomi12/DeepLearningSystem/tree/main/04Infe…

[python-opencv] PNG 裁切物体

拿到一组图PNG的图,边缘有点太宽了,需要裁切一下,为了这个需求,简单复习一下基本语法。 1. 读取PNG的4个通道 image cv.imread(image_path, cv.IMREAD_UNCHANGED) 附参数说明: IMREAD_UNCHANGED -1 返…

3、生成式 AI 如何帮助您改进数据可视化图表

生成式 AI 如何帮助您改进数据可视化图表 使用生成式 AI 加速和增强数据可视化。 图像来源:DALLE 3 5 个关键要点: 数据可视化图表的基本结构使用 Python Altair 构建数据可视化图表使用 GitHub Copilot 加快图表生成速度使用 ChatGPT 为您的图表生成相关内容使用 DALL-E 将…

[BUUCTF]-PWN:wustctf2020_easyfast解析

又是堆题,查看保护 再看ida 大致就是alloc创建堆块,free释放堆块,fill填充堆块,以及一个getshell的函数,但要满足条件。 值得注意的是free函数没有清空堆块指针 所以可以用double free 有两种解法 解法一&#xff0…

【Linux】打包压缩跨系统/网络传输文件常用指令完结

Hello everybody!在今天的文章中我会把剩下的3-4个常用指令讲完,然后开始权限的讲解。那废话不多说,咱们直接进入正题! 1.zip/unzip&tar命令 1.zip/unzip 在windows系统中,经常见到带有zip后缀的文件。那个东西就是压缩包。…