当前位置: 首页 > web >正文

【正则表达式】选择(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. 尝试匹配第一个选项,如果成功则停止
  3. 如果第一个选项不匹配,则尝试第二个选项
  4. 依此类推,直到找到匹配或所有选项都尝试完毕

🍨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
http://www.xdnf.cn/news/20334.html

相关文章:

  • MySQL InnoDB 的锁机制
  • Chrome 插件开发入门:打造个性化浏览器扩展
  • 神经网络|(十八)概率论基础知识-伽马函数·下
  • Follow 幂如何刷屏?拆解淘宝闪购×杨幂的情绪共振品牌营销
  • Doris 消费kafka消息
  • 通过PXE的方式实现Ubuntu 24.04 自动安装
  • 版本管理系统与平台(权威资料核对、深入解析、行业选型与国产平台补充)
  • 50.4k Star!我用这个神器,在五分钟内搭建了一个私有 Git 服务器!
  • 小程序的project.private.config.json是无依赖文件,那可以删除吗?
  • Aspose.Words for .NET 25.7:支持自建大语言模型(LLM),实现更安全灵活的AI文档处理功能
  • 《LangChain从入门到精通》系统学习教材大纲
  • java基础学习(四):类 - 了解什么是类,类中都有什么?
  • 25年下载chromedriver.140
  • 项目必备流程图,类图,E-R图实例速通
  • 面试 TOP101 贪心专题题解汇总Java版(BM95 —— BM96)
  • 实力登榜!美创科技荣膺数说安全《2025中国网络安全企业100强》
  • IDEA中Transaction翻译插件无法使用,重新配置Transaction插件方法
  • 基于飞算JavaAI的在线图书借阅平台设计实现
  • Process Explorer 学习笔记(第三章 3.2.2):定制可显示的列与数据保存
  • Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十七天
  • Bug排查日记:从崩溃到修复的实战记录
  • Nginx +Tomcat架构的必要性与应用示例
  • Kafka 消息队列:揭秘海量数据流动的技术心脏
  • 具身智能多模态感知与场景理解:融合语言模型的多模态大模型
  • 【关系型数据库SQL】MySql数据库基础学习(一)
  • 高级RAG策略学习(五)——llama_index实现上下文窗口增强检索RAG
  • 在本地使用Node.js和Express框架来连接和操作远程数据库
  • 从“找新家”到“走向全球”,布尔云携手涂鸦智能开启机器人新冒险
  • 突发奇想,还未实践,在Vben5的Antd模式下,将表单从「JS 配置化」改写成「模板可视化」形式(豆包版)
  • langchain 提示模版 PromptTemplate