用最后一个加号代替所有分号

问题描述

除了最后一个分号,我想用加号(+)替换所有分号(;)。

ex-

我有这样的东西-

  • 苹果;
  • 香蕉;
  • 苹果;香蕉;
  • Apple; Banana; Orange;
  • Apple; Banana; Orange; Mango;

我想要这样的结果-

  • 苹果;
  • 香蕉;
  • 苹果+香蕉;
  • 苹果+香蕉+橙;
  • 苹果+香蕉+橙+芒果;

到目前为止我尝试过

replace(/;/g,' + ')

但这将替换所有分号。

行/单词的大小是动态的,即行与行之间的变化。

解决方法

使用look ahead

console.log("A;".replace(/;(?=[^;]*;)/g,' + '));
console.log("A;B;".replace(/;(?=[^;]*;)/g,' + '));
console.log("A;B;C;".replace(/;(?=[^;]*;)/g,' + '));
console.log("A;B;C;D;".replace(/;(?=[^;]*;)/g,' + '));

,

使正则表达式在;之后需要另一个字符,您可以使用捕获组将其复制到结果中。

s.replace(/;(.)/g,' + $1')

在字符串的末尾将没有后一个字符,因此它将不匹配。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...