基础 - 正则表达式

前言

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

推荐的正则表达式校验网站: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中文
相关推荐
剑之所向3 小时前
DataEase 做大屏,只认 2 种 SQL 格式
数据库·sql·正则表达式
Season4502 天前
C++11之正则表达式使用指南--[正则表达式介绍]|[regex的常用函数等介绍]
c++·算法·正则表达式
北风toto2 天前
正则表达式
正则表达式
除了辣条不吃辣6 天前
ABAP 正则表达式
开发语言·正则表达式·abap·alv
吴声子夜歌7 天前
JavaScript——字符串和正则表达式
开发语言·javascript·正则表达式
曾阿伦7 天前
Python 正则表达式备忘录:判断与提取核心用法
python·正则表达式
小张贼嚣张7 天前
SQL 正则表达式详解:语法、函数与实战案例(MySQL/Oracle通用)
mysql·oracle·正则表达式
Zzzz_my8 天前
正则表达式(RE)
pytorch·python·正则表达式
yhole9 天前
SQL中的REGEXP正则表达式使用指南
数据库·sql·正则表达式
ybdesire11 天前
ReDoS(正则表达式拒绝服务攻击)理解与实测
正则表达式·漏洞