Elimina ;; în șir

0

Problema

Am string

;{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)

Vreau să-l elimina ;; aici {card}(Secretele de Magie neagră;;Numit de Mormânt) ( nu ;; exterior)

Rezultatul vreau

   ;{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)

Am incercat codul de mai jos, dar elimina toate ;; în șir!

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

Cel mai bun răspuns

1

Putem folosi preg_replace_callback aici pentru a viza toate textele care apar în paranteze (...). Apoi, la fiecare meci, nu un simplu șir de înlocuire de ;; la un singur ;.

$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;

Acest printuri:

;{card}(Secretele de Magie neagră);;{card}(Secretele de Magie neagră);;{card}(Secretele de Magie neagră);;{card}(Secretele de Magie neagră;;Numit de Mormânt);;{card}(Secretele de Magie neagră;;Numit de Mormânt;;Secretele de Magie neagră)

;{card}(Secretele de Magie neagră);;{card}(Secretele de Magie neagră);;{card}(Secretele de Magie neagră);;{card}(Secretele de Magie neagră;Numit de Mormânt);;{card}(Secretele de Magie neagră;Numit de Mormânt;Secretele de Magie neagră)

2021-11-24 05:29:36

În alte limbi

Această pagină este în alte limbi

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