首页 > 其他分享 >正则 表达式,或者匹配

正则 表达式,或者匹配

时间:2023-02-15 17:47:35浏览次数:36  
标签:匹配 捕获 正则 let 表达式 key keyList reg match

例子:

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+

 

标签:匹配,捕获,正则,let,表达式,key,keyList,reg,match
From: https://www.cnblogs.com/yan122/p/17124064.html

相关文章