正则表达式核心符号速查表

速查表

以下整理自稀土掘金技术社区高频教程,涵盖正则表达式核心符号及用法:

符号 名称 功能描述 示例 匹配结果
. 通配符 匹配除换行符外的任意单个字符 a.c abc, a&c
* 星号量词 匹配前一个元素 0 次或多次 ab*c ac, abbc
+ 加号量词 匹配前一个元素 1 次或多次 ab+c abc, abbbc
? 问号量词 匹配前一个元素 0 次或 1 次 colou?r color, colour
{n} 精确量词 匹配前一个元素 恰好 n 次 a{3} aaa
{n,} 区间量词(最小) 匹配前一个元素 至少 n 次 a{2,} aa, aaaa
{n,m} 区间量词(范围) 匹配前一个元素 n 到 m 次 a{2,4} aa, aaa
[ ] 字符集 匹配括号内 任意一个字符 [aeiou] a, e(单词中的元音)
[^ ] 否定字符集 匹配 不在括号内 的任意字符 [^0-9] a, !(非数字)
` ` 或运算符 匹配 左侧或右侧 的表达式 `cat
( ) 捕获分组 将表达式分组并捕获匹配内容 (ab)+ ab, abab
\1 反向引用 引用第 1 个捕获分组的内容 (\w+) \1 hello hello
^ 起始锚点 匹配字符串的 开始位置 ^Hello Hello(仅匹配行首)
$ 结束锚点 匹配字符串的 结束位置 end$ end(仅匹配行尾)
\b 单词边界 匹配单词的开头或结尾位置 \bword\b word(独立单词)
\d 数字字符 匹配任意数字(等价于 [0-9] \d{3} 123, 789
\w 单词字符 匹配字母、数字或下划线(等价于 [a-zA-Z0-9_] \w+ hello, user_1
\s 空白符 匹配空格、制表符、换行符等 \s+ (空格), \t
\ 转义符 将特殊符号转为普通字符 \. .(匹配点号)

高级符号扩展

符号 名称 功能描述
(?: ) 非捕获分组 分组但不捕获匹配内容
(?= ) 正向先行断言 匹配后面紧跟指定模式的位置
(?! ) 负向先行断言 匹配后面不跟指定模式的位置
(?<= ) 正向后行断言 匹配前面紧跟指定模式的位置(需固定长度)
(?<! ) 负向后行断言 匹配前面不跟指定模式的位置(需固定长度)

常用正则表达式实用示例

基础校验

类型 正则表达式 说明 匹配示例
纯汉字 ^[\u4e00-\u9fa5]+$ 仅包含中文字符 "中文", "正则表达式"
纯英文 ^[a-zA-Z]+$ 仅包含英文字母(大小写) "Hello", "REGEX"
汉字+英文组合 ^[\u4e00-\u9fa5a-zA-Z]+$ 中文与英文混合(不含空格/数字/符号) "中文English", "掘金Juejin"

进阶校验

类型 正则表达式 说明 匹配示例
字母+符号 ^[a-zA-Z\p{P}]+$ 英文+标点符号(需启用u标志) "Hello!", "Code@_#"
字母+符号+数字 ^[\w\p{P}]+$ 字母/数字/下划线/标点符号 "P@ss_123", "a1.b?"
中英数混合(含空格) ^[\u4e00-\u9fa5a-zA-Z0-9\s]+$ 中文/英文/数字/空格 "掘金 2024 Juejin"

格式校验

类型 正则表达式 说明
用户名 ^[a-zA-Z0-9_\-.]{4,16}$ 4-16位字母/数字/_-.(常用网站规则)
强密码 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{8,}$ 至少8位,含大小写字母+数字+特殊字符
国内手机号 ^1[3-9]\d{9}$ 11位手机号(中国大陆)
邮箱地址 ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 通用邮箱格式(非严格RFC标准)

高级技巧

  1. 提取中文内容
    [\u4e00-\u9fa5]+ → 从"Hello 世界!2024"提取"世界"

  2. 分割中英混合字符串
    ([\u4e00-\u9fa5]+|[a-zA-Z]+) → 将"掘金Juejin"分割为["掘金", "Juejin"]

  3. 过滤特殊符号
    [^\u4e00-\u9fa5a-zA-Z0-9\s] → 移除除中英数空格外的所有字符


使用示例(JavaScript)

javascript 复制代码
// 校验中文+英文混合
const regex = /^[\u4e00-\u9fa5a-zA-Z]+$/;
console.log(regex.test("掘金Juejin")); // true

// 提取文本中的中文
const text = "Hello 世界!2024";
const chineseChars = text.match(/[\u4e00-\u9fa5]+/g);
console.log(chineseChars); // ["世界"]

// 强密码校验
const strongPwd = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{8,}$/;
console.log(strongPwd.test("P@ssw0rd")); // true

💡 符号说明

  • \u4e00-\u9fa5:匹配所有中文字符(Unicode范围)
  • \p{P}:匹配所有标点符号(需启用u标志)
  • (?= ):正向先行断言(验证但不消耗字符)
  • \W:匹配非单词字符(等价于[^a-zA-Z0-9_]

稀土掘金学习资源推荐

  1. 《正则表达式 30 分钟入门》
  2. 可视化正则表达式工具 - Regulex
  3. JavaScript 正则最佳实践

💡 提示:不同编程语言(如 Python/JavaScript)的正则实现略有差异,建议查阅对应文档。

相关推荐
BillKu5 小时前
Vue3 + Element-Plus 抽屉关闭按钮居中
前端·javascript·vue.js
面向星辰5 小时前
html中css的四种定位方式
前端·css·html
Async Cipher6 小时前
CSS 权重(优先级规则)
前端·css
大怪v6 小时前
前端佬:机器学习?我也会啊!😎😎😎手“摸”手教你做个”自动驾驶“~
前端·javascript·机器学习
Liquad Li6 小时前
Angular 面试题及详细答案
前端·angular·angular.js
用户21411832636026 小时前
首发!即梦 4.0 接口开发全攻略:AI 辅助零代码实现,开源 + Docker 部署,小白也能上手
前端
gnip8 小时前
链式调用和延迟执行
前端·javascript
SoaringHeart8 小时前
Flutter组件封装:页面点击事件拦截
前端·flutter
杨天天.8 小时前
小程序原生实现音频播放器,下一首上一首切换,拖动进度条等功能
前端·javascript·小程序·音视频
Dragon Wu9 小时前
React state在setInterval里未获取最新值的问题
前端·javascript·react.js·前端框架