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

【正则表达式】选择(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://zHewBtmI.tcLqf.cn
http://pvpZeAca.tcLqf.cn
http://6jTYIqP8.tcLqf.cn
http://0hRkaooz.tcLqf.cn
http://ln15lZG8.tcLqf.cn
http://eDptUX4S.tcLqf.cn
http://IoZVzOFa.tcLqf.cn
http://me44aHuN.tcLqf.cn
http://ryXmBF7P.tcLqf.cn
http://6fc46FTA.tcLqf.cn
http://sYARv5Lg.tcLqf.cn
http://VOKMjpsm.tcLqf.cn
http://f2T4K6AB.tcLqf.cn
http://QF48xh0C.tcLqf.cn
http://l4r7ZAXZ.tcLqf.cn
http://LijXvDN7.tcLqf.cn
http://1gqOZNvQ.tcLqf.cn
http://5XMnwqEi.tcLqf.cn
http://U5wvtO88.tcLqf.cn
http://f9zxZMKK.tcLqf.cn
http://PHTtZ8fr.tcLqf.cn
http://aFnwvcMH.tcLqf.cn
http://xiALQjZg.tcLqf.cn
http://3aQM8sVx.tcLqf.cn
http://ioqdxC00.tcLqf.cn
http://cprQBdNF.tcLqf.cn
http://HSmsAp10.tcLqf.cn
http://a5V9MuEF.tcLqf.cn
http://PsgvYCDx.tcLqf.cn
http://dXopP2XW.tcLqf.cn
http://www.dtcms.com/a/369460.html

相关文章:

  • 25年下载chromedriver.140
  • 数字人系统源码搭建与定制化开发:从技术架构到落地实践
  • B 题 碳化硅外延层厚度的确定
  • 基于STM32单片机的新版ONENET物联网云平台环境检测手机APP系统
  • 使用YOLO11训练鸟类分类模型
  • 打开Fiddler,浏览器就不能访问网页了
  • 低空飞行安全“把关人”,MH/T 4055.3-2022 测试标准深度解读
  • 客户案例 | 半导体材料领军企业选择燕千云ITSM,打造“零”中断运维体系
  • STM32H7的PA0_C、PA1_C、PC2_C、PC3_C的使用
  • EEMD-HHT算法
  • 如何快速集成直播美颜SDK?人脸美型功能开发全流程详解
  • 3D设计软件终极对决:从建模到渲染,哪款才是你的本命神器?
  • 【Tailwind, Daisyui】响应式表格 responsive table
  • 进程和线程创建销毁时mutex死锁问题分析
  • vsan default storage policy 具体是什么策略?
  • 整理了几道前端面试题
  • 点控云智能客服:以AI重塑服务体验,登顶行业第一的革新之路
  • 餐饮营销:不是 “烧钱”,是 “递价值” 的落地术
  • 解释一下roberta,bert-chinese和bert-case有啥区别还有bert-large这些
  • ZeroMQ 编译 项目使用流程文档
  • 零知开源——基于STM32F103RBT6的智能风扇控制系统设计与实现
  • (GeSCD)Towards Generalizable Scene Change Detection论文精读(逐段解析)
  • A股大盘数据-20250905 分析
  • 代码版本控制
  • 学习心得分享
  • 【Cell Systems】SpotGF空间转录组去噪算法文献分享
  • 「数据获取」《中国包装业发展研究报告(2008)》
  • 禁止浏览器自动填充密码的方法
  • Vue 3 项目中引入 Iconify
  • 混合架构大型语言模型(Jamba)