第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

用于選擇具有特定開(kāi)始和結(jié)束字符串的文本的正則表達(dá)式,并且還排除特定單詞

用于選擇具有特定開(kāi)始和結(jié)束字符串的文本的正則表達(dá)式,并且還排除特定單詞

慕娘9325324 2023-11-11 21:44:31
假設(shè)我有以下字符串:const { user } = props;const { task } = state;const { words } = response;const { plays } = result;我想選擇的字符串以“const {”開(kāi)頭以“;”結(jié)尾但不包含“props”或“state”等詞我達(dá)到了這個(gè)地步(?<=const\s)(.*)(?=;)這可以幫助我選擇所需開(kāi)始/結(jié)束內(nèi)的內(nèi)容。但我無(wú)法弄清楚如何排除那些旨在排除的詞。我怎樣才能得到// Expected output 1user } = responseuser } = result此外,我怎樣才能得到// Expected output 2const { user } = response;const { user } = result;我打算使用 NodeJS/javascript 在文件上運(yùn)行類似的正則表達(dá)式模式。
查看完整描述

1 回答

?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

您當(dāng)前的模式與空白(?<=const\s)(.*)(?=;)之間的任何零個(gè)或多個(gè)字符匹配,直到同一行中最右邊的出現(xiàn)為止。您想要做的是跳過(guò)字符串之間的部分,這是使用正則表達(dá)式不可能實(shí)現(xiàn)的。在這些情況下,您應(yīng)該始終考慮解決方法。也就是說(shuō),您可以在模式中使用捕獲組進(jìn)行替換,并在替換中使用反向引用(如果您需要獲得單個(gè)匹配項(xiàng)),或者完全更改整個(gè)邏輯(當(dāng)您需要多個(gè)匹配項(xiàng)時(shí),就像這里一樣)。const;


在這種情況下,您可以提取當(dāng)前匹配的所有字符串,確保匹配行上沒(méi)有您不希望出現(xiàn)的單詞,然后將大括號(hào)之間的所有字符串替換為該字符串(從所需的輸出中推導(dǎo)出來(lái){ user }) )。


然后你可以使用類似的東西


const text = "const { user } = props;\nconst { task } = state;\nconst { words } = response;\nconst { plays } = result;"

console.log(

    text.match(/const\s(?!.*\b(?:props|state)\b).*;/g).map(x => x.replace(/{[^{}]*}/, '{ user }'))

)

輸出:


[

  "const { user } = response;",

  "const { user } = result;"

]


查看完整回答
反對(duì) 回復(fù) 2023-11-11
  • 1 回答
  • 0 關(guān)注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)