簡體   English   中英

Javascript RegEx 替換兩個特定表達式之間的空格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM