Odstrániť ;; v reťazec

0

Otázka

Mám reťazec

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

Chcem odstrániť ;; tu {karty}(Tajomstvo Temnú Mágiu;;Volal do Hrobu) ( nie ;; mimo)

Výsledok chcem

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

Snažil som sa kód nižšie, ale to odstrániť všetky ;; v reťazec!

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

Najlepšiu odpoveď

1

Môžeme použiť preg_replace_callback tu zacieliť všetky texty vyskytujúce sa v zátvorkách (...). Potom na každý zápas, urobiť jednoduché nahradenie reťazca z ;; na jednej ;.

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

Vytlačí:

;{karty}(Tajomstvo Temnú Mágiu);;{karty}(Tajomstvo Temnú Mágiu);;{karty}(Tajomstvo Temnú Mágiu);;{karty}(Tajomstvo Temnú Mágiu;;Volal do Hrobu);;{karty}(Tajomstvo Temnú Mágiu;;Volal do Hrobu;;Tajomstvo Temnú Mágiu)

;{karty}(Tajomstvo Temnú Mágiu);;{karty}(Tajomstvo Temnú Mágiu);;{karty}(Tajomstvo Temnú Mágiu);;{karty}(Tajomstvo Temnú Mágiu;Volal do Hrobu);;{karty}(Tajomstvo Temnú Mágiu;Volal do Hrobu;Tajomstvo Temnú Mágiu)

2021-11-24 05:29:36

V iných jazykoch

Táto stránka je v iných jazykoch

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