Как убрать символы между двумя скобками и квадратными скобками. Например
Let it [Am]be, let it [C/G]be, let it [F]be, let it [C]be
[C]Whisper words of [G]wisdom, let it [F]be [C/E] [Dm] [C]
Я хочу, чтобы строка выше
Let it be, let it be, let it be, let it be
Whisper words of wisdom, let it be
Я использую это регулярное выражение, но это только скобки.
var reg = /[\[\]']+/g
var x = song.replace(reg,"")
console.log(x);
Вам нужно избежать внешний[]
, чтобы вы соответствовали им буквально и позволяли внутри все, кроме ]
. Так:
var reg = /\[[^\]]*\]/g;
Вот разбивка (также по регулярное выражение101):
\[
соответствует [
буквально[^\]]
соответствует любому символу, который не является ]
*
говорит «ноль или более» из них (поэтому он заменяет []
; если вы этого не хотите, измените это на +
для «один или несколько»)\]
соответствует ]
буквально (мне, вероятно, не нужно избегать его там, но я все равно склоняюсь к нему)Живой пример:
const song = `Let it [Am]be, let it [C/G]be, let it [F]be, let it [C]be
[C]Whisper words of [G]wisdom, let it [F]be [C/E] [Dm] [C]`;
var reg = /\[[^\]]*\]/g;
var x = song.replace(reg,"");
console.log(x);
Примечание: в современном JavaScript мы не используем var
. Вместо этого используйте let
или const
.