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