[英]Javascript RegEx to replace white space between two specific expressions
我試圖從字符串中刪除空格字符,僅當它位於數字和G
字母之間時。
示例文本: XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ
目標結果: XXX YYY AAA 16Gb 16Gb 16G 2G ZZZ
到目前為止,我所擁有的是:
'XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ'.replace(/\d+ gb?/ig, '?')
您可以捕獲一個數字和一個空格(或 1+ 個空格)並在右側聲明 G。
在替換中使用組 1 $1
並啟用/g
標志來替換所有匹配項,並可能/i
用於不區分大小寫的匹配。
(\d) +(?=G)
(\d)
捕獲單個數字+
匹配 1+ 個空格(?=G)
正向前瞻,在右邊斷言一個G
字符 const regex = /(\d) +(?=G)/g; console.log("XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ".replace(regex, "$1"));
在新版本的 JS 中,我們有前瞻和后瞻斷言,這意味着您可以:
"XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ".replace( /(?<=\d) +(?=G)/g, "" )
和輸出:
"XXX YYY AAA 16Gb 16Gb 16G 2G ZZZ"
其中說(?<=\d) +(?=G)
:
(?<=\d)
向后查找單個數字,但將其包含在匹配中+
匹配一個或多個空格(?=G)
先行查找G
但不將其包含在匹配項中更多的
您可以通過創建 Regex 組輕松實現此目的。 注意圍繞數字和“g”的 (),然后通過索引它們在替換 function 中重用它們。
console.log("XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ".replace(/([\d])\s*(g)/ig, '$1$2'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.