正则表达式(Regular Expression) 简明指南

目录

  • [🌾1. 字符与范围](#🌾1. 字符与范围)
  • [🌾2. 匹配多少次](#🌾2. 匹配多少次)
  • [🌾3. 组合与选择](#🌾3. 组合与选择)
  • [🌾4. 网站推荐(学习和调试正则表达式)](#🌾4. 网站推荐(学习和调试正则表达式))

本文为我学习"实现简易四则运算编译器"过程中的一篇子博客。


🌾1. 字符与范围

  • 单个字符: 直接写。比如 + 匹配加号,a 匹配字母 a。
    • 注意:有些字符有特殊含义(如 . * + ? ( )),如果要匹配它们本身,要加双引号 "+" 或反斜杠 \+。
  • 字符集 : 匹配括号里的任意一个字符。
    • 0123456789:匹配任何一个数字。
    • 简写形式:0-9 代表所有数字,a-z 代表小写字母,A-Z 代表大写字母。
    • 组合形式:0-9a-fA-F 匹配十六进制字符。
  • 排除集 \^ : 匹配不在括号里的字符。
    \^0-9:匹配任何不是数字的字符。

🌾2. 匹配多少次

这是正则最强大的地方,紧跟在字符或括号后面:

  • ** *(星号):** 匹配 0 次或多次。
    • 0-9*:可以是空,也可以是 1,也可以是 123。
  • +(加号):匹配 1 次或多次(至少出现一次)。
    • 0-9+:匹配至少一个数字(不能为空)。
  • ?(问号):匹配 0 次或 1 次(表示可选)。
    • -?:正负号是可选的。
  • {n}:匹配 恰好 n 次。

🌾3. 组合与选择

  • 连接: 直接挨着写。
    • 0x0-9a-f+:先匹配 0x,后面跟着至少一个十六进制数字。
  • 选择 |: 匹配左边或者右边。
    • 0x|0X:匹配大写或小写的十六进制前缀。
  • 分组 ( ): 把一部分规则看成一个整体。
    • (ab)+:匹配 ab, abab, ababab...

🌾4. 网站推荐(学习和调试正则表达式)

https://regex101.com/

🍭该网站主要有四个板块:

  1. Flavor (左侧栏):选择正则表达式的"口味"。
  2. REGULAR EXPRESSION (顶部输入框):在这里输入你的正则表达式。
    • 例如输入:0xX0-9a-fA-F+
  3. TEST STRING (中间大输入框):在这里输入你想测试的文本内容。
    • 你可以输入:0x1A, 123, 0XFF, 0xGH。
  4. EXPLANATION (右侧栏): 它会逐字逐句解释你写的正则是什么意思。

🍭几个实用的功能:

  1. 颜色对应:正则框里的颜色和测试文本里的高亮颜色是对应的。这能帮你快速定位是正则的哪一部分匹配了文本的哪一部分。
  2. Quick Reference (右下角):这里是一个"小抄集"。如果你忘了"匹配换行符"怎么写,在里面搜 newline 就能找到。
  3. Flags (正则框最右侧的小旗子):
    • 默认开启 g (Global):匹配所有符合条件的,而不是找到第一个就停止。
    • 如果你写 Flex,通常不用管这里的 Flags。
相关推荐
Frag0ut3 小时前
Notepad++ 正则表达式完全手册:文本处理的终极武器(2026实战版)
正则表达式·notepad++·数据清洗·日志分析·正则替换·提取ip·正则表达式实战
Patrick在香港3 天前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
echome8883 天前
Python 正则表达式:5 个日常够用的模式
python·正则表达式
yivifu5 天前
能够使用Python正则表达式函数的文本处理工具——Calibre电子书编辑器
正则表达式
全栈陈序员5 天前
【Python】基础语法入门(二十九)—— 正则表达式实战:文本处理利器
开发语言·人工智能·python·正则表达式
BruceXu11 天前
\b 在中文里会静默失效:三个正则坑和一份能用的字符边界方案
正则表达式
阿昭L12 天前
正则表达式
正则表达式·编译原理
波力海苔夹心脆67513 天前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
FRing0314 天前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
小白快快跑哦16 天前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义