例子:
let reg = /(?:}\s*(\S+)\s*#)|(?:\s+(\S+)\s+)|(?:\s+(\S+)\s*#)|(?:}\s*(\S+)\s+)/g; let keyList = [] let match = value.match(reg) if( match ){ keyList = match.map((matchItem) => { let key matchItem.replace(reg, (res, $1, $2, $3, $4) => { key = $1 || $2 || $3 || $4 }) return key }) } console.log("函数g4词法", keyList)
1. 正则表达式使用 | 表示逻辑或
2. 使用 | 是,用 ( ),将正则分组
3. 使用 ?: 形成被动子表达式,忽略一组括号的捕获
4. 在匹配时,会对或者串上的捕获组全部捕获
5. 捕获的顺序是从前往后,从外向里捕获
\(}\s*(1\S+)\s*#)|(\s+(2\S+)\s+)\ // 捕获顺序为 }\s*(1\S+)\s*# 、1\S+ 、 \s+(2\S+)\s+ 、 2\S+ \(?:}\s*(1\S+)\s*#)|(?:\s+(2\S+)\s+)\ // 捕获顺序为 1\S+ 、 2\S+
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律