【正则表达式】选择(Alternation)和分支 (Branching)在正则表达式中的使用
🌈 个人主页:(时光煮雨)
🔥 高质量专栏:vulnhub靶机渗透测试
👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分95+),分享更多关于网络安全、Python领域的优质内容!(希望得到您的关注~)
🌵目录🌵
- 前言
-
- 什么是选择 (Alternation)
- 什么是分支 (Branching)
- 🍦一、原理解析
-
- 🍧1.1.选择操作符 | 的工作原理
- 🍨1.2.分组与选择
- 🍩1.3.分支回溯机制
- ☕二、实践示例
-
- 🍼2.1.基本选择示例
- 🥛2.2.分组选择示例
- ☕2.3.复杂分支示例
- 🍵三、扩展应用
-
- 🍺3.1.性能优化技巧
- 🍺3.2.实际应用场景
- 🤝 期待与你共同进步
- 📚 参考文档
前言
什么是选择 (Alternation)
选择(Alternation)是指在正则表达式中使用 | 符号表示 “或” 的逻辑关系。它允许你匹配多个可能的模式之一。
cat|dog
这个模式会匹配 “cat” 或 “dog”。
什么是分支 (Branching)
分支是指正则表达式引擎在匹配过程中遇到选择点时,会尝试不同的匹配路径。当一条路径匹配失败时,引擎会回溯并尝试其他可能的路径。
🍦一、原理解析
🍧1.1.选择操作符 | 的工作原理
- 正则表达式引擎从左到右扫描 | 分隔的各个选项
- 尝试匹配第一个选项,如果成功则停止
- 如果第一个选项不匹配,则尝试第二个选项
- 依此类推,直到找到匹配或所有选项都尝试完毕
🍨1.2.分组与选择
选择通常与分组 () 结合使用,以限定选择的范围:
gr(a|e)y
这个模式会匹配 “gray” 或 “grey”。
🍩1.3.分支回溯机制
当正则表达式引擎遇到选择点时:
- 记住当前位置(创建检查点)
- 尝试第一个分支
- 如果失败,回退到检查点
- 尝试下一个分支
- 重复直到成功或所有分支都尝试过
☕二、实践示例
🍼2.1.基本选择示例
// 匹配多种日期格式
const datePattern = /\b(January|February|March|April|May|June|July|August|September|October|Nove