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

速查表

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

符号 名称 功能描述 示例 匹配结果
. 通配符 匹配除换行符外的任意单个字符 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)的正则实现略有差异,建议查阅对应文档。

相关推荐
tingkeiii28 分钟前
【react+antd+vite】优雅的引入svg和阿里巴巴图标
前端·react.js·前端框架
清幽竹客34 分钟前
vue-18(使用 Vuex 插件实现高级功能)
前端·vue.js·前端框架·vue
粥里有勺糖1 小时前
用Trae做了个公众号小工具
前端·ai编程·trae
棉花糖超人2 小时前
【从0-1的HTML】第2篇:HTML标签
前端·html
exploration-earth2 小时前
本地优先的状态管理与工具选型策略
开发语言·前端·javascript
OpenTiny社区2 小时前
开源之夏报名倒计时3天!还有9个前端任务有余位,快来申请吧~
前端·github
ak啊2 小时前
WebGL魔法:从立方体到逼真阴影的奇妙之旅
前端·webgl
hang_bro2 小时前
使用js方法实现阻止按钮的默认点击事件&触发默认事件
前端·react.js·html
用户90738703648643 小时前
pnpm是如何解决幻影依赖的?
前端
树上有只程序猿3 小时前
Claude 4提升码农生产力的5种高级方式
前端