正则表达式核心知识点语法速查表

 更新时间:2026年06月24日 10:26:18   作者:尚浩码农  
正则表达式是一种文本模式匹配的工具,它用于描述一种字符组成的规则,在文本处理中,正则表达式被广泛用于搜索、替换、匹配、验证等操作,这篇文章主要介绍了正则表达式核心知识点语法速查的相关资料,需要的朋友可以参考下

前言

正则表达式是处理字符串的强大工具,广泛应用于文本匹配、验证、提取和替换等场景。无论是开发、数据分析还是日常办公,掌握正则表达式都能大幅提升效率。以下是系统梳理的核心知识点:

一、基础概念与作用

  • 定义:由普通字符(如字母、数字)和特殊字符(元字符)组成的字符串模式,用于描述字符串的规则。
  • 核心作用
    • 验证字符串格式(如手机号、邮箱、身份证号)
    • 从文本中提取特定信息(如 URL、日期、关键词)
    • 批量替换或清理文本(如去除空格、统一格式)
  • 应用场景:编程语言(JavaScript/Python/Java/Php 等)、文本编辑器(VS Code/Sublime)、数据库查询(SQL)等。

二、基础语法:元字符与规则

1. 匹配单个字符

元字符含义示例
.匹配任意单个字符(除换行\n、回车\r)a.b  匹配 aab、acb,不搭配ab
[]匹配括号内任意一个字符[abc]  匹配a、b或c
[^]匹配不在括号内的任意字符[^abc]  匹配搭配d、e等非 a/b/c 的字符
\d匹配数字(等价于[0-9])\d{3}  匹配123、456等3位数字
\D匹配非数字(等价于[^0-9])\D  匹配a、b等非数字字符
\w匹配数字、字母、下划线(等价于[0-9a-zA-Z_])\w  匹配1、a、b2、c5_等
\W匹配非数字、字母、下划线(等价于[^0-9a-zA-Z_])\W  匹配@、#、¥等
\s匹配空白字符(含空格“ ”、换行\n、回车\r、制表符\t等)a\sb  匹配"a b"、"a\nb"、"a\rb"等
\S匹配非空白字符a\Sb 匹配"ab"、不匹配"a b"

注意:如果需要匹配元字符本身(如  * 等),需要用到 \ 进行转义,例如 \. 匹配小数点、 \* 匹配星号。

2. 匹配数量:量词

用于指定字符或分组出现的次数

量词含义示例
*匹配0次或多次(尽可能多,贪婪模式)ab* 匹配a、ab、abb等
+匹配1次或者多次ab* 匹配ab、abb等,不匹配a
?匹配0次或者1次ab* 匹配a、ab
{n}精确匹配n次ab{2} 匹配abb
{n,}匹配至少n次ab{2,} 匹配abb,abbb等
{n,m}匹配n到m次 包含(n和m)ab{2,4}匹配abb、abbb、abbbb

贪婪和非贪婪:默认是贪婪模式(尽可能多的匹配),在量词后面加问号 ? 切换成非贪婪模式(尽可能少的匹配),例如 a.*b 匹配  axxbxxb 中的 axxbxxb ,而 a.*?b 匹配 axxb 

3. 位置匹配:边界与锚点

用于定位字符串的位置(不匹配具体字符)

元字符含义示例
^匹配字符串开头(多行模式下匹配每行开头)^abc 匹配abcd 不匹配1abcd
$匹配字符串结尾(多行模式下匹配每行结尾)abc$ 匹配1abc 不匹配abcd
\b匹配单词边界(字母数字与非字母数字的交界处)\bcat\b 匹配 cat、cat!,不匹配category
\B匹配非单词边界\Bcat\B 匹配category中cat,不匹配单独的cat

4、分组与引用

名称含义示例
分组用括号()将多个字符视为一个整体,可结合量词使用(ab)+  匹配ab、abab,不匹配abb
捕获分组分组会默认编号(从1开始),可通过\n(正则中)和$n(替换时)引用(\d{4})-(\d{2})-(\d{2}) 匹配日期,替换为$3/$2/$1  可转为“日/月/年”格式
非捕获分组用(?:)定义,仅分组不捕获(不分配编号,节省资源)(?:\d{4})-(\d{2})-(\d{2}) 匹配日期,替换为$2/$1  可转为“日/月”格式,不捕获年份,所以$1代表了月份
分支条件用符号 | 表示“或”关系,匹配多个模式中的一个

abc|adc 匹配 abc 或 adc;

a(b|d)c 匹配 abc 或  adc

5、特殊模式:标志(修饰符)

用于调整正则的匹配规则

标志含义示例
i忽略大小写abc/i 匹配abc、AbC
g全局匹配(找到所有匹配,而非第一个)a/g 匹配aaab 中的所有a
m多行模式(^和$匹配每行的开头和结尾)^a/m 匹配 a\nabc中的2个a
s单行模式( . 就可以匹配换行符)a.b/s 可以匹配a\nb,但a.b不可匹配

6、断言的类型

断言是正则表达式中用于指定匹配位置的元字符,它们不匹配任何实际字符,而是匹配字符之间的位置。简单来说,断言就是"条件",它要求目标字符串必须满足某些条件,但不会消耗字符。

类型含义示例
正向先行断言(?=pattern)匹配后面跟着 pattern 的位置/[a-z](?=\d)/ 匹配a1 中的a
负向先行断言(?!pattern)匹配后面不跟着pattern的位置/[a-z](?!\d)/ 匹配ab中的a
正向后行断言(?<=pattern)匹配前面跟着 pattern 的位置/(?<=\d)[a-z]/ 匹配1a中的a
负向后行断言(?<!pattern)匹配前面不跟着pattern的位置/(?<!\d)[a-z]/ 匹配ab中的a

7、常用的场景案例

案例规则正则
手机号11 位数字,以 1 开头,第二位为 3/4/5/7/8^1[34578]\d{9}$
邮箱用户名 @域名(域名含。和字母 / 数字)^\w+([+-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
提取url中的域名从 "https://www.example.com/path"提取"www.example.com"https?://([^/]+)(通过分组捕获域名)
匹配日期YYYY-MM-DD 格式^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[0-1])$

总结 

到此这篇关于正则表达式核心知识点语法速查表的文章就介绍到这了,更多相关正则表达式核语法速查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python正则表达式之基础篇

    Python正则表达式之基础篇

    正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。这篇文章主要介绍了Python正则表达式之基础篇的相关资料,需要的朋友可以参考下
    2016-01-01
  • 如何使用正则去掉html中标签与标签之间的空格

    如何使用正则去掉html中标签与标签之间的空格

    文章介绍了如何使用正则表达式去除HTML标签之间多余的空格,包括处理多个空格、换行符、排除<pre>标签内的空格以及处理标签内的空格,提供了三种JavaScript正则表达式解决方案,并解释了它们的优缺点,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 正则表达式环视概念与用法分析

    正则表达式环视概念与用法分析

    这篇文章主要介绍了正则表达式环视概念与用法,具体分析了环视的概念、分类、使用方法及相关注意事项,需要的朋友可以参考下
    2017-06-06
  • 12个常用的js正则表达式

    12个常用的js正则表达式

    这篇文章为大家分享了12个常用的js表单验证正则表达式,对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串,需要的朋友可以参考下
    2015-11-11
  • 常见的数字验证正则表达式整理

    常见的数字验证正则表达式整理

    常见的数字验证正则表达式整理,开发的朋友经常用的到。推荐大家收藏下。
    2009-11-11
  • sql关键词脚本检查正则表达式的方法

    sql关键词脚本检查正则表达式的方法

    这篇文章主要介绍了sql关键词脚本检查正则表达式的写法,需要的朋友可以参考下
    2019-06-06
  • 判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)

    判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)

    下面小编就为大家带来一篇判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 使用正则表达式验证域名的教程

    使用正则表达式验证域名的教程

    本教程介绍了如何使用正则表达式验证域名格式,正则表达式确保域名符合基本规则:每个标签只能包含字母、数字和短横线,标签长度限制在1到63个字符之间,且顶级域名必须由字母组成且长度至少为2个字符,感兴趣的朋友一起看看吧
    2024-11-11
  • 常用正则表达式语法例句

    常用正则表达式语法例句

    常用正则表达式语法例句...
    2007-03-03
  • 表单验证常用正则(强烈推荐大家收藏下)

    表单验证常用正则(强烈推荐大家收藏下)

    表单验证常用正则,非常不错,收集的相对比较完整,大家可以看看。
    2009-11-11

最新评论