目录
- [🌾1. 字符与范围](#🌾1. 字符与范围)
- [🌾2. 匹配多少次](#🌾2. 匹配多少次)
- [🌾3. 组合与选择](#🌾3. 组合与选择)
- [🌾4. 网站推荐(学习和调试正则表达式)](#🌾4. 网站推荐(学习和调试正则表达式))
本文为我学习"实现简易四则运算编译器"过程中的一篇子博客。
🌾1. 字符与范围
- 单个字符: 直接写。比如 + 匹配加号,a 匹配字母 a。
- 注意:有些字符有特殊含义(如
. * + ? ( )),如果要匹配它们本身,要加双引号"+"或反斜杠\+。
- 注意:有些字符有特殊含义(如
- 字符集[ ] : 匹配括号里的任意一个字符。
-
0123456789\]:匹配任何一个数字。
- 组合形式:[0-9a-fA-F] 匹配十六进制字符。
-
- 排除集 [^ ] : 匹配不在括号里的字符。
\^0-9\]:匹配任何不是数字的字符。
🌾2. 匹配多少次
这是正则最强大的地方,紧跟在字符或括号后面:
- **
*(星号):** 匹配 0 次或多次。-
0-9\]\*:可以是空,也可以是 1,也可以是 123。
-
0-9\]+:匹配至少一个数字(不能为空)。
-
-\]?:正负号是可选的。
-
🌾3. 组合与选择
- 连接: 直接挨着写。
- 0x[0-9a-f]+:先匹配 0x,后面跟着至少一个十六进制数字。
- 选择 |: 匹配左边或者右边。
- 0x|0X:匹配大写或小写的十六进制前缀。
- 分组 ( ): 把一部分规则看成一个整体。
- (ab)+:匹配 ab, abab, ababab...
🌾4. 网站推荐(学习和调试正则表达式)
🍭该网站主要有四个板块:
- Flavor (左侧栏):选择正则表达式的"口味"。
- REGULAR EXPRESSION (顶部输入框):在这里输入你的正则表达式。
- 例如输入:0[xX][0-9a-fA-F]+
- TEST STRING (中间大输入框):在这里输入你想测试的文本内容。
- 你可以输入:0x1A, 123, 0XFF, 0xGH。
- EXPLANATION (右侧栏): 它会逐字逐句解释你写的正则是什么意思。
🍭几个实用的功能:
- 颜色对应:正则框里的颜色和测试文本里的高亮颜色是对应的。这能帮你快速定位是正则的哪一部分匹配了文本的哪一部分。
- Quick Reference (右下角):这里是一个"小抄集"。如果你忘了"匹配换行符"怎么写,在里面搜 newline 就能找到。
- Flags (正则框最右侧的小旗子):
- 默认开启 g (Global):匹配所有符合条件的,而不是找到第一个就停止。
- 如果你写 Flex,通常不用管这里的 Flags。