我有一個package.json,其中一些依賴項版本是:
...
"dependencies": {
"@octopol/common": "workspace:packages/common",
}
...
我想workspace:packages/<something>用,例如,替換所有這些 ( ) 版本1.0.0。
我試過這個:
`"@octopol/common": "workspace:packages/common","@octopol/aa": "workspace:packages/aa",`
.replace(/(workspace:packages\/(.*))/g, "1.0.0")
我期待得到:
"@octopol/common": "1.0.0","@octopol/aa": "1.0.0",
但結果是:
'"@octopol/common": "1.0.0'
我在這里缺少什么?
uj5u.com熱心網友回復:
該.*直到行結束比賽,并因為你的輸入是單行線,/(workspace:packages\/(.*))/g比賽workspace:packages/,然后比換行字符以外的任何零個或多個字符,盡可能多,直到行的末尾。你需要以某種方式緩和這個點。
一個可能的解決方案看起來像
console.log(
`"@octopol/common": "workspace:packages/common","@octopol/aa": "workspace:packages/aa",`
.replace(/workspace:packages\/[^"]*/g, "1.0.0")
);
哪里workspace:packages\/[^"]*匹配
workspace:packages\/-workspace:packages/字串[^"]*- 除".以外的零個或多個字符。
如果要替換的部分不能包含空格,您可以將模式進一步精確為/workspace:packages\/[^"\s]*/g。
請參閱正則運算式演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/353995.html
標籤:javascript 正则表达式
