基础 - 正则表达式

前言

⚠️ 该篇博客主要是方便后续查验

推荐的正则表达式校验网站:https://regex101.com/

⭐️ 可以把已经匹配到的字符当作是被剔除了,剩余待匹配字段已经没有它了

介绍

**正则表达式(Regular Expression)**是一种文本模式,包括普通字符(例如,a 到 z 之间的字母或者 0 到 9 的数字)和特殊字符(称为"元字符")。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

正则表达式的功能

  • 校验数据的有效性(例如:校验邮箱格式)
  • 识别符合要求的文本内容
  • 文本的切割及替换

基本使用

元字符就是指那些在正则表达式中具有特殊意义的专用字符

常用的元字符

元字符 说明
. 匹配除换行符以外的任意字符
\w 匹配字母、数字或下划线
\W 匹配非字母、数字和下划线
\d 匹配数字
\D 匹配非数字
\s 匹配任意的空白符
\S 匹配任意的非空白符
? 重复0次或1次
* 重复0次或多次
+ 重复一次或更多次
{n} 重复匹配n次
{n,} 重复匹配至少n次
{n,m} 重复匹配n到m次
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
[] 匹配字符集合中的任意一个字符,内可使用^表示取反
| 逻辑"或",匹配其左右两边的任意一个子表达式

字符转义

  • 正则中本身有一些特殊字符已经被专用了,所以想匹配元字符本身或者正则中某些特殊字符的话,需要使用\转义。
  • 例如 :匹配*这个字符则使用\*,匹配\这个字符,使用\\
  • 需要转义的字符:$, (, ), *, +, ., [, ], ?, \, ^, {, }, |

案例详解

常用正则
正则表达式 说明
^1[3-9]\d{9}$ 手机号验证(中国),例如 15161112222
`^[1-9]\d{5}\d{4}(0[1-9] 1[0-2])(0[1-9]
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ 邮箱验证,例如:user@example.com
案例 .

功能:匹配除换行符以外的任意字符

匹配文本 abcaab_
正则表达式 ab.
匹配数量 2
匹配结果 abc,ab_
案例 \w

功能:匹配字母、数字或下划线

匹配文本 abc\w中文_-
正则表达式 \w.\\w
匹配数量 1
匹配结果 bc\w
案例 \W

功能:匹配非字母、数字和下划线(与\w相反)

匹配文本 ab\ @#b_1中文
正则表达式 \W.
匹配数量 3
匹配结果 \ ,@#,中文
案例 \d

功能:匹配数字

匹配文本 123.
正则表达式 \d\.
匹配数量 1
匹配结果 3.
案例 \D

功能:匹配非数字

匹配文本 abc2abcdhj$3
正则表达式 \D\w.\d
匹配数量 2
匹配结果 abc2,hj$3
案例 \s

功能:匹配任意的空白符

案例二

匹配文本 abc ab @#$
正则表达式 \s\w
匹配数量 1
匹配结果 a
案例 \S

功能:匹配任意的非空白符

匹配文本 abc ab @#$
正则表达式 \S\w
匹配数量 2
匹配结果 ab,ab
案例 ?

功能:重复0次或1次

匹配文本 http123https
正则表达式 https?
匹配数量 1
匹配结果 http,https
案例 *

功能:重复0次或多次

匹配文本 test123aa中文
正则表达式 \d.*
匹配数量 1
匹配结果 123aa中文
案例 +

功能:重复一次或更多次

匹配文本 test123aa中文
正则表达式 \d.+
匹配数量 1
匹配结果 123aa中文
相关推荐
超级大只老咪8 小时前
正则表达式
正则表达式
千叶寻-14 小时前
正则表达式
前端·javascript·后端·架构·正则表达式·node.js
XYiFfang2 天前
【MYSQL】SQL学习指南:从常见错误到高级函数与正则表达式
sql·mysql·正则表达式·regexp_like·group_concat
czhc11400756634 天前
Linux108 shell:.bashrc 正则表达式:. * .* ^ $ ^$ [ ] [^] ^[] ^[^ ] \< \>
linux·正则表达式
数据知道4 天前
Go基础:正则表达式 regexp 库详解
开发语言·mysql·golang·正则表达式·go语言
利刃大大4 天前
【高并发服务器】三、正则表达式的使用
服务器·c++·正则表达式·项目
尘觉7 天前
正则表达式入门与进阶(优化版)
正则表达式
AI悦创|编程1v18 天前
00-1-正则表达式学习心得:从入门到上瘾,再到克制
数据仓库·正则表达式·数据挖掘·ai悦创编程一对一教学·python一对一辅导·python一对一教学