【正则表达式】 正则表达式匹配位置规则是怎么样的?
🌈 个人主页:(时光煮雨)
🔥 高质量专栏: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}$