Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式替换两个特定表达式之间的空白_Javascript_Regex - Fatal编程技术网

Javascript正则表达式替换两个特定表达式之间的空白

Javascript正则表达式替换两个特定表达式之间的空白,javascript,regex,Javascript,Regex,我试图从字符串中删除空格字符,但仅当它是一个数字和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标志替换所有匹配项,并可能替换不区分

我试图从字符串中删除空格字符,但仅当它是一个数字和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字符 常量正则表达式=/\d+?=G/G;
console.logXXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ.replaceregex,$1 您可以捕获一个数字和一个空格或1+空格,并在右侧断言G

在替换组中,使用组1$1并启用/g标志替换所有匹配项,并可能替换不区分大小写匹配项的/i

(\d) +(?=G)
\d捕获一个位数 +匹配1+空格 ?=G正向前瞻,在右侧断言一个G字符 常量正则表达式=/\d+?=G/G;
console.logXXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ.replaceregex,$1 您可以通过创建正则表达式组轻松实现这一点。注意数字和g的周围,然后通过索引它们在replace函数中重用它们

console.log("XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ".replace(/([\d])\s*(g)/ig, '$1$2'))

您可以通过创建正则表达式组轻松实现这一点。注意数字和g的周围,然后通过索引它们在replace函数中重用它们

console.log("XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ".replace(/([\d])\s*(g)/ig, '$1$2'))

在新版本的JS中,我们有“向前看”和“向后看”断言,这意味着您可以:

"XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ".replace( /(?<=\d) +(?=G)/g, "" )
上面说:


在新版JS中,我们有“向前看”和“向后看”的断言,这意味着您可以:

"XXX YYY AAA 16Gb 16 Gb 16 G 2 G ZZZ".replace( /(?<=\d) +(?=G)/g, "" )
上面说:


?我会使用\s来显式匹配空格-我认为这会使正则表达式更可读。@Mrsieurmerso您可以使用\s,但也可以匹配换行符。我不知道,谢谢!我会使用\s来显式匹配空格-我认为这会使正则表达式更可读。@Mrsieurmerso您可以使用\s,但也可以匹配换行符。我不知道,谢谢!在这里您还可以看到对lookback的支持在这里您还可以看到对lookback的支持