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

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

正則表達式匹配具有固定長度的逗號分隔列表?

正則表達式匹配具有固定長度的逗號分隔列表?

開滿天機 2021-09-30 13:40:16
我有一個逗號分隔的列表,如下所示:element1,element2,element3;element4,element5,element6,element7;element8,element9;每個元素可以是任何文本,但元素中不能有逗號。我希望做的是,匹配具有特定長度的元素列表。例如,如果我輸入 4,代碼將匹配 4 個元素列表,它將輸出element4,element5,element6,element7。如果我指定 2 ,它將輸出element8,element9。這可能嗎?
查看完整描述

2 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

為此,您不需要正則表達式。


使用您的輸入字符串,您可以只使用 split() 和 find() 的組合來執行您想要的操作。例如:


function findInString(str, length) {

  return str

    .split(";") // split at semicolons

    .map(elem => elem.split(",")) // split at commas to make an Array of Arrays

    .find(arr => arr.length === length)  // Array length === input length

    .join(",") // make into a String again (if you want to)

}

如果您想考慮錯誤(例如要求負長度),您必須find在位中考慮這些,或者單獨加入。例如:


function findInString(str, length) {

  const res = str

    .split(";")

    .map(elem => elem.split(","))

    .find(arr => arr.length === length) 


  if(res) {

    return res.join(",")

  } else {

    return ""

  }

}


查看完整回答
反對 回復 2021-09-30
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

這個正則表達式應該可以工作。數字 2 是您要搜索的“,”的數量。

(;|^)(\w*)((,\w*){2});

您可以通過直觀和自學的方式在regex101上評估 Regex 。


查看完整回答
反對 回復 2021-09-30
  • 2 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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