關於es2018中正則表達的命名捕獲

2021-08-27 08:47:19 字數 1664 閱讀 8385

es6中的命名捕獲

(?《別名》) 在正規表示式中以這樣的形勢就能給子表示式取乙個別名,以獲得更好的**可讀性

現在有乙個字串,』2018-09-06』,我需要分別獲取他的年月日,以前的做法就是:

let

str = '2018-09-06'

let reg = /(\d)-(\d)-(\d)/

let arr = str.match(reg)

let [year, month, day] = [arr[1], arr[2], arr[3]]

但是現在新版的es中提供了乙個更加便於理解的方法,現在很多瀏覽器還不支援,新版谷歌可用

let str =  '2018-09-06'

let reg1 = /(?\d)-(?\d)-(?\d)/

let arr = str.match(reg1)

let = arr.groups

命名捕獲在replace中的使用
之前的做法

let

str = '2018-09-06'

let reg = /(\d)-(\d)-(\d)/

let str1 = str.replace(reg,'$2/$3/$1');

console.log(str1) // 09/06/2018

es2018的做法

let

str = '2018-09-06'

let reg = /(?\d)-(?\d)-(?\d)/

let newstr = str.replace(reg, '$/$/$')

console.log(newstr) // 09/06/2018

當然replace的回掉函式方式也是可以實現的

let str = '2018-09-06';

let reg = /(?\d)-(?\d)-(?\d)/

let str2 = str.replace(reg,(...args)=> = args[args.length - 1]

return `$/$/$`;

})console.log

(str2) // 2018/09/06

反向引用

以前反向引用子表示式的做法如下

let str2 = 'welcome-welcome-welcame'

let reg2 = /(welcome)(-)\1\2/

console.log(str2.match(reg2)) // welcome-welcome-

新es標準裡可以通過命名捕獲來反向引用, 只需要 \k《別名》就好了

let str2 = 'welcome-welcome-welcame'

let reg2 = /(?welcome)-\k-/

console.log(str2.match(reg2)) // welcome-welcome-

關於Python中正規表示式re S的作用

今天入門爬蟲的時候看到有這個一種寫法 pic url re.findall objurl html,re.s 所以,今天來簡單分析一下這個東西 re.s的作用 下面主要看一下這個 import re a sdfkhellolsdlfsdfiooefo 877898989worldafdsf b re...

ES6裡關於正規表示式的拓展

在 es5 中,regexp建構函式的引數有兩種情況。第一種情況是,引數是字串,這時第二個引數表示正規表示式的修飾符 flag var regex new regexp xyz i 等價於var regex xyz i 第二種情況是,引數是乙個正規表示式,這時會返回乙個原有正規表示式的拷貝 var ...

ES6裡關於正規表示式的拓展

在 es5 中,regexp建構函式的引數有兩種情況。第一種情況是,引數是字串,這時第二個引數表示正規表示式的修飾符 flag var regex new regexp xyz i 等價於var regex xyz i 第二種情況是,引數是乙個正規表示式,這時會返回乙個原有正規表示式的拷貝 var ...