Remover ;; em cadeia

0

Pergunta

Eu cadeia

;{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic;;Called by the Grave);;{card}(Secrets of Dark Magic;;Called by the Grave;;Secrets of Dark Magic)

Eu quero remover ;; aqui {card}(Segredos da Magia negra;;Chamado por Sepultura) ( não ;; fora)

Resultado que eu quero

   ;{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic;Called by the Grave);;{card}(Secrets of Dark Magic;Called by the Grave;Secrets of Dark Magic)

Eu tentei o código abaixo, mas é remover todos ;; na cadeia!

$search = ';;';
$string = preg_replace("/($search)/", ";", $string); 
php regex
2021-11-24 05:22:41
1

Melhor resposta

1

Podemos usar preg_replace_callback aqui para o destino de todos os textos que ocorrem dentro de parênteses (...). Em seguida, em cada partida, fazer uma simples seqüência de caracteres de substituição de ;; a única ;.

$input = ";{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic);;{card}(Secrets of Dark Magic;;Called by the Grave);;{card}(Secrets of Dark Magic;;Called by the Grave;;Secrets of Dark Magic)";
$output = preg_replace_callback("/\(.*?\)/", function($matches) {
    return str_replace(";;", ";", $matches[0]);
}, $input);
echo $input;
echo "\n";
echo $output;

Esta função imprime:

;{card}(Segredos da Magia negra);;{card}(Segredos da Magia negra);;{card}(Segredos da Magia negra);;{card}(Segredos da Magia negra;;Chamado por Sepultura);;{card}(Segredos da Magia negra;;Chamado por Sepultura;;Segredos da Magia negra)

;{card}(Segredos da Magia negra);;{card}(Segredos da Magia negra);;{card}(Segredos da Magia negra);;{card}(Segredos da Magia negra;Chamado por Sepultura);;{card}(Segredos da Magia negra;Chamado por Sepultura;Segredos da Magia negra)

2021-11-24 05:29:36

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................