尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

「学习笔记」正则表达式

「学习笔记」正则表达式
📅 发布时间:2026/6/20 17:38:39

正则表达式

正则表达式(Regular Expression,简称 Regex 或 RegExp)是一种用来匹配字符串中字符组合的模式。
正则表达式是一种用于模式匹配和搜索文本的工具。
正则表达式提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。
正则表达式可以做什么?

  • 查找:在文本中找到特定模式的内容。
  • 替换:将符合某种模式的文本替换为其他内容。
  • 验证:检查输入的数据是否符合预期格式。
  • 提取:从复杂文本中提取需要的信息。

字符匹配

  • 普通字符:按照字面意思进行匹配,如匹配 'a' 将匹配到文本中的 'a' 字符。
  • 元字符:具有特殊含义,如 \d 匹配任何数字字符、\w 匹配任意字母数字字符、. 匹配任意字符(除了换行符)。

量词

  • *: 匹配前面的模式零次或多次。(有就匹配,没有就散伙)
  • +: 匹配前面的模式一次或多次。(必须有,上不封顶)
  • ?: 匹配前面的模式零次或一次。(可以没有,但上封顶)
  • {n}: 匹配前面的模式恰好 \(n\) 次。
  • {n,}: 匹配前面的模式至少 \(n\) 次。
  • {n,m}: 匹配前面的模式至少 \(n\) 次,但不超过 \(m\) 次。

模式:你要找的东西
量词:你要找多少个东西

字符类

  • []: 匹配括号内的任意一个字符。

    例如:[a, b, c] 匹配字符 a, b 或 c.

  • [^ ]:匹配除了括号内的字符以外的任意一个字符。

    例如,[^abc] 匹配除了字符 a、b 或 c 以外的任意字符。

边界匹配

  • ^:匹配字符串的开头。

    ^A 表示:必须是队伍最前面的那个人叫 A。

    正则:^Hello,匹配:"Hello world"(Hello 在开头)不匹配:"Say Hello" (Hello 不在开头)。

  • $:匹配字符串的结尾。

    A$ 表示:必须是队伍最后面的那个人叫 A。

  • \b:匹配单词边界。

    比如 \bcat\b 只匹配独立的单词 "cat"。

    匹配 "cat"、"a cat"、"cat dog",但不匹配 "category" 或 "scatter"(cat在其中并非单词)。

  • \B:匹配非单词边界。

    比如 \Bcat\B 匹配单词内部的 "cat"。

    匹配 "category" 中的 "cat", 但不匹配单独的 "cat"。

分组和捕获

  • ( ):用于分组和捕获子表达式。

    ( ) → 打包并贴标签,会记住匹配到的内容,后面可以引用。

    (ab)+, 把 "ab" 打包成一个整体,然后匹配:ab、abab、ababab...

  • (?: ):用于分组但不捕获子表达式。

    (?: ) → "只打包不贴标签",不会记住匹配内容,更高效但不可引用。

特殊字符

  • \: 转义字符,用于匹配特殊字符本身。
  • .: 匹配任意字符(除了换行符)。
  • |: 用于指定多个模式的选择。

普通字符

  • [ABC]: 匹配 [...] 中的所有字符。
  • [^ABC]: 匹配除了 [...] 中字符的所有字符。
  • [A-Z]: 表示一个区间,匹配所有大写字母,[a-z] 为匹配所有小写字母。
  • .: 匹配除换行符 \n, \r 之外的任何单字符,相当于 [^\n\r]。
  • [\s\S]: 匹配所有,\s 是匹配所有空白符,包括换行,\S 是非空白符,不包括换行。
  • \w: 匹配字母、数字、下划线,等价于 [A-Za-z0-9_]。
  • \d: 匹配任意一个数字,等价于 [0-9]。

非打印字符

  • \cx: 匹配由 x 指明的控制字符。x 的值必须为 A-Z 或 a-z 之一,否则,将 c 视为一个原义的 'c' 字符。
  • \f: 匹配一个换页符。等价于 \x0c 和 \cL。
  • \n: 匹配一个换行符。等价于 \x0a 和 \cJ。
  • \r: 匹配一个回车符。等价于 \x0d 和 \cM。
  • \s: 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

    注意 Unicode 正则表达式会匹配全角空格符。

  • \S: 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
  • \t: 匹配一个制表符。等价于 \x09 和 \cI。
  • \v: 匹配一个垂直制表符。等价于 \x0b 和 \cK。

这里还要再好好看看……

特殊字符

  • $: 匹配输入字符串的结尾位置。

    要匹配 $ 字符本身,请使用 \$。

  • ( ): 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。

    要匹配这些字符,请使用 \( 和 \)。

  • *: 匹配前面的子表达式零次或多次。

    要匹配 * 字符,请使用 \*。

  • +: 匹配前面的子表达式一次或多次。

    要匹配 + 字符,请使用 \+。

  • .: 匹配除换行符 \n 之外的任何单字符。

    要匹配 . ,请使用 \. 。

  • [: 标记一个中括号表达式的开始。

    要匹配 [,请使用 \[。

  • ?: 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
  • \: 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。

    序列 '\' 匹配 \。

  • ^: 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。

    要匹配 ^ 字符本身,请使用 \^。

  • {: 标记限定符表达式的开始。

    要匹配 {,请使用 \{。

  • |: 指明两项之间的一个选择。

    要匹配 |,请使用 \|。

限定符

  • *: 匹配前面的子表达式零次或多次。
  • +: 匹配前面的子表达式一次或多次。
  • ?: 匹配前面的子表达式零次或一次。
  • {n}: \(n\) 是一个非负整数。匹配确定的 \(n\) 次。
  • {n,}: \(n\) 是一个非负整数。至少匹配 \(n\) 次。
  • {n,m}: \(m\) 和 \(n\) 均为非负整数,其中 \(n \leq m\)。最少匹配 \(n\) 次且最多匹配 \(m\) 次。

定位符

  • ^: 匹配输入字符串开始的位置。
  • $: 匹配输入字符串结尾的位置。
  • \b: 匹配一个单词边界,即字与空格间的位置。
  • \B: 非单词边界匹配。

先到这里……消化一下……

朝气蓬勃 后生可畏

相关新闻

  • 三、字符设备驱动(基于北京迅为电子)
  • Zabbix告警:value cache working in low memory mode
  • 计算机导论

最新新闻

  • 2026年6月最新爱彼中国官方售后服务热线网点及客服电话地址 - 亨得利官方服务中心
  • 论文AI写作用什么好?4款工具不同场景不同需求推荐 - 掌桥科研-AI论文写作
  • GDB基础命令
  • 2026上海翡翠回收避坑指南|看懂行情价,拒绝虚高报价套路 - 奢侈品交易观察员
  • ahk2_lib架构解密:构建企业级AutoHotkey V2原生扩展生态
  • 3分钟免费汉化Axure:告别英文界面,拥抱高效中文设计体验

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号