网站首页 > 教程分享 正文
正则表达式反向断言
ES9支持反向断言,通过对匹配结果前面的内容进行判断,对匹配进行筛选。
非获取匹配:
组group的概念,用()包含的是组,里面的数据会获取供以后使用,这叫获取匹配,通过Match.group(index)获取,第一个group从1开始,index=0表示获取整个匹配字符串,非获取匹配:正向表示匹配前面,反向表示匹配后面。
(?=pattern):正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern):正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
(?<=pattern):反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?<!pattern):反向否定预查,与正向否定预查类似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。
代码案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>正则扩展-正则表达式反向断言</title>
</head>
<body>
<script>
//声明字符串
let str = 'JS5211314你知道么555啦啦啦';
//正向断言
const reg = /\d+(?=啦)/;
const result = reg.exec(str);
//反向断言
const reg = /(?<=么)\d+/;
const result = reg.exec(str);
console.log(result);
</script>
</body>
</html>
- 上一篇: web前端JavaScript笔记四 正则表达式
- 下一篇: 正则表达式测试工具
猜你喜欢
- 2025-04-26 小心别落入正则回溯陷阱
- 2025-04-26 OpenHarmony中使用正则表达式
- 2025-04-26 分享 5 个正则表达式的实际应用场景案例
- 2025-04-26 正则表达式获取body内容
- 2025-04-26 正则表达式简明教程
- 2025-04-26 正则表达式,这篇看完就够了
- 2025-04-26 10分钟快速掌握正则表达式
- 2025-04-26 JS 写正则表达式,判断是否为手机号
- 2025-04-26 手把手写给前端的正则表达式【基础篇】
- 2025-04-26 推荐三款正则可视化工具「JS篇」
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)