Hilfe beim filtern von text in nem string, regex

nightryu

Mitglied
Halluuuh :)
Ich brauche schon wieder Hilfe :rolleyes: ich hoffe das nimmt mir niemand übel...^^"

Naja, auf jeden Fall habe ich folgendes Problem:
Ich habe früher einmal Daten in eine db geschrieben und denen, unerfahren wie ich war ( und in einigen Dingen) noch bin, ein Präfix direkt in den String davorgehangen.

beispiel:
PHP:
aus $titel
wurde in die db direkt in eine der zellen [ $Präfix ]_$titel geschrieben

Nun komm ich nicht weiter...
Ich habe zum Beispiel folgenden String:

Code:
[Anime-Serien] Sketchbook - Full Color`s(Japanisch)
Wie gehe ich vor, wenn alle Strings so aufgebaut sind ?:
[$präfix] $titel (sprache)

Ich möchte aber nur den Teil $titel daraus haben...
Im Beispiel also nur "Sketchbook - Full Color`s"

ich gebrauche sonst fast nirgendwo regex... aber ich glaub fast dass es hier sein muss?^^"
Für Hilfe wäre Ich euch sehr dankbar :)
 
Hallo,

ohne regex würds so gehn:
PHP:
$string = '[Anime-Serien] Sketchbook - Full Color`s(Japanisch)';

$part_string = explode('] ',$string);
$part_string = explode('(',$part_string[1]);
echo $part_string[0];
Wenn das Format immer identisch ist und im Titel keine "] " oder "(" vorkommen, sollte das klappen!

MfG
 
PHP:
<?php
$teststring = "[Anime-Serien] Sketchbook - Full Color`s(Japanisch)";

$extracted = preg_replace("#^\[.*\](.*)\(.*\)$#", "$1", $teststring);

echo trim($extracted);
?>

Das liefert mir das gewünschte Ergebnis. Ist aber noch gut ausbaufähig ;)

Gruss Igäl
 
vielen Dank euch beiden schonmal :)
könnt ihr mir sagen was rein praktisch gesehn schneller vonstatten geht, von der rechenzeit her..? :)
Auch wenn die ganze aktion ja so nix dicken zusein scheint :rolleyes:
 
Das kann ich dir leider nicht genau sagen, da ich die interne Arbeitsweise von preg_replace nicht kenne.

Ich würde allerdings jetzt einfach mal frech behaupten (und ich lasse mich hierbei gern belehren), dass preg_replace schneller ist, als einen String in ein Array of Arrays zu zerlegen und dann ein darin enthaltenes Array noch einmal auseinander zu pflücken.

Ausserdem bietet es dir den Vorteil, dass sämtliche Zeichen gelesen werden, unabhängig, ob es [] oder () in dem gewünschten String hat.
 
Zurück