亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則里的match不能與(?:)一起用嗎?

正則里的match不能與(?:)一起用嗎?

喵喔喔 2019-02-13 18:19:35
某一個字符串為'a_b_2_d_1'我想匹配到_后面的字母與數字,但是不匹配_,于是我寫了:let str = "a_b_2_d_1"let result = str.match(/(?:_)[a-z0-9]+/gi);console.log(result); //["_b", "_2", "_d", "_1"]結果將_也匹配了進去,match是與(?:)不生效呢,還是為什么。如果不用這種方式還能怎么寫呢?
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

你可以去查下match的用法,match根據正則表達式里面有沒有全局匹配g,會返回不同的結果,如果不是全局匹配,那么返回的結果是數組,第一個元素是匹配的完整字符串,從第二個元素開始是捕獲型括號的內容;如果是全局匹配,返回的結果是一個數組,數組的每個元素都是匹配的完整字符串,沒有捕獲型括號的內容。


使用exec,代碼如下:


let str = "a_b_2_d_1"

let re = /(?:_)([a-z0-9]+)/gi

let match

let result = []


while (match = re.exec(str)) {

    result.push(match[1])

}

console.log(result)


查看完整回答
反對 回復 2019-02-22
  • 1 回答
  • 0 關注
  • 337 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號