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

【正则表达式】 正则表达式匹配位置规则是怎么样的?

🌈 个人主页:(时光煮雨)
🔥 高质量专栏:vulnhub靶机渗透测试
👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分95+),分享更多关于网络安全、Python领域的优质内容!(希望得到您的关注~)


🌵目录🌵

  • 前言
  • 🍎一.常用位置匹配元字符
    • 🍓1.1.行首与行尾匹配
      • 🥥1.1.1.^ - 匹配行首
      • 🥝1.1.2.$ - 匹配行尾
    • 🍑1.2.单词边界匹配
      • 🍐1.2.1.\b - 匹配单词边界
      • 🍏1.2.2.\B - 匹配非单词边界
    • 🌽1.3.其他位置匹配
  • 🥬二.位置匹配的实际应用
    • 🥔2.1. 验证输入格式
    • 🥒2.2.提取特定位置的单词
    • 🥜2.3. 替换特定位置的文本
  • 🍅三.高级位置匹配技巧
    • 🥑1. 多行模式下的位置匹配
    • 🍆2. 前后断言(Lookaround)
  • 🌶️四.常见错误与注意事项
  • 🥒五.练习挑战
  • 🥦六.总结要点
  • 🤝 期待与你共同进步
  • 📚 参考文档


前言

位置匹配(也称为锚定或边界匹配)是指匹配字符串中的特定位置,而不是实际的字符。与普通字符匹配不同,位置匹配不消耗任何字符,它只是指定匹配必须发生的位置。

为什么需要位置匹配

  • 精准定位:可以精确指定匹配发生的位置
  • 效率提升:避免不必要的全文搜索
  • 模式验证:检查字符串是否符合特定格式要求

🍎一.常用位置匹配元字符

🍓1.1.行首与行尾匹配

🥥1.1.1.^ - 匹配行首

// 匹配以"Hello"开头的行
const pattern = /^Hello/;
console.log(pattern.test("Hello World")); // true
console.log(pattern.test("Say Hello"));   // false

🥝1.1.2.$ - 匹配行尾

// 匹配以"World"结尾的行
const pattern = /World$/;
console.log(pattern.test("Hello World")); // true
console.log(pattern.test("World Peace")); // false

🍑1.2.单词边界匹配

🍐1.2.1.\b - 匹配单词边界

单词边界是指\w([a-zA-Z0-9_])和\W之间的位置,或字符串的开始/结束位置。

// 匹配独立的"cat"单词
const pattern = /\bcat\b/;
console.log(pattern.test("cat"));        // true
console.log(pattern.test("concatenate")); // false
console.log(pattern.test("a cat"));      // true

🍏1.2.2.\B - 匹配非单词边界

// 匹配不在单词边界的"cat"
const pattern = /\Bcat\B/;
console.log(pattern.test("concatenate")); // true
console.log(pattern.test("cat"));        // false

🌽1.3.其他位置匹配

  • \A 和 \Z(某些语言支持)
    • \A:匹配字符串开头(不同于^,不受多行模式影响)
    • \Z:匹配字符串结尾或结尾的换行符之前

🥬二.位置匹配的实际应用

🥔2.1. 验证输入格式

// 验证手机号码(以1开头,共11位数字)
const phonePattern = /^1\d{10}$

文章转载自:

http://Q6O727nA.ryxbz.cn
http://COSCa78C.ryxbz.cn
http://GvJCiW9m.ryxbz.cn
http://7dHsILVS.ryxbz.cn
http://qykFDA4q.ryxbz.cn
http://jbTjatY5.ryxbz.cn
http://lZhTn8K7.ryxbz.cn
http://QJn1DXZ7.ryxbz.cn
http://WORTMlJl.ryxbz.cn
http://Q1FQIboO.ryxbz.cn
http://LCF9MQBp.ryxbz.cn
http://8t5EbAT4.ryxbz.cn
http://T7xM0ruA.ryxbz.cn
http://2ZAjC8lK.ryxbz.cn
http://uRYZmfnQ.ryxbz.cn
http://LttSKsQU.ryxbz.cn
http://eZVkib8W.ryxbz.cn
http://Ix7NpopB.ryxbz.cn
http://1xgV2cEu.ryxbz.cn
http://MAgen0uz.ryxbz.cn
http://vNQ6EElq.ryxbz.cn
http://cSwAcdtA.ryxbz.cn
http://Bsp32oqI.ryxbz.cn
http://ZtBFMUUR.ryxbz.cn
http://1pRZiA7y.ryxbz.cn
http://8FKIhQkq.ryxbz.cn
http://CmjsJS7Y.ryxbz.cn
http://nSZX2plk.ryxbz.cn
http://7PkFt3bq.ryxbz.cn
http://zN9c3TeW.ryxbz.cn
http://www.dtcms.com/a/367257.html

相关文章:

  • 【LeetCode数据结构】设计循环队列
  • Python 第三方自定义库开发与使用教程
  • Browser Use 浏览器自动化 Agent:让浏览器自动为你工作
  • AI代码管家:告别烂代码的自动化魔法
  • 数据结构_二叉平衡树
  • 君正交叉编译链工具mips-gcc540-glibc222-64bit-r3.3.0.smaller.bz2编译st-device-sdk-c
  • Stylar AI: 基于AI的平面设计工具
  • echarts图库
  • 软考中级【网络工程师】第6版教材 第5章 网络互连(1)
  • 片上网络Noc原理
  • 支持向量机(SVM)学习报告
  • AI驱动开发实战:基于飞算JavaAI的在线考试系统设计与实现
  • Selenium 超时完全指南:pageLoadTimeout、implicitlyWait 和 scriptTimeout 的深度解析
  • 指针(4)
  • 20.36 QLoRA微调实测:59%显存暴降+3倍提速,95%性能保留惊呆业界!
  • 【数学建模学习笔记】机器学习分类:XGBoost分类
  • Mybatis入门、操作数据、配置xml映射、数据封装
  • STM32实践项目(激光炮台)
  • NotePad++下载安装与设置
  • 深入解析 UDT 协议:突破数据传输瓶颈的高性能解决方案
  • MySQL分区表实战:提升大表查询性能的有效方法
  • c# .net中using的使用
  • AI大模型企业落地指南-笔记05
  • InheritedWidget
  • 2025数学建模国赛高教社杯C题思路代码文章助攻
  • 超细整理,全链路性能测试-容量评估与规划,看这篇就够了...
  • Java ConcurrentModificationException 深度剖析开发调试日志
  • 从群体偏好到解构对齐:大模型强化学习从GRPO到DAPO的“认知”进化
  • https + 域名 + 客户端证书访问模式
  • Python中将方法转为属性式访问