Passender RegExp-Pattern ?

TheFrager

Grünschnabel
Ich versuche im Moment, einen String mit Hilfe der sehr nützlichen Regulären Ausdrücke zu überprüfen bzw. zu manipulieren.

Hier mein Problem:
Ich habe einen String ($unkontrolliert), bei dem Leerzeichen am Anfang und am Ende entfernt werden sollen. Nach dem Anwenden von preg_replace() soll dann der korrekte String ($kontrolliert) ohne diese Leerzeichen zurückgegeben werden.

Ich habe hier bereits folgendes Skript:
Code:
$pattern = "/^( *)(.*[^ ])( *)$/"; // kann man das verbessern?

$unkontrolliert = "         a  bc          ";

print preg_match($pattern,$unkontrolliert);
print "<br>";
$kontrolliert = preg_replace($pattern,"ohne Leerzeichen: <b>$2</b>",$unkontrolliert);
print $kontrolliert;
Es funktioniert auch soweit und erfüllt seinen Zweck. Ich habe einfach ein bisschen herumprobiert und irgendwann hat's dann zufällig geklappt. :-)

Kennt jemand einen besseren reg. Ausdruck für diese Problem?
ich wäre euch für Tipps wirklich dankbar, weil ich mich mit den RegExp halt noch nicht so auskenne! ;)
 
Zuletzt bearbeitet:
Ich möchte den Ausdruck später noch erweitern, z.B. sollen auch doppelte Leerzeichen und ungültige Sonderzeichen herausgefiltert werden usw.
 
Das eine muss das andere ja nicht ausschliessen.
Das Replacement in preg_replace() kann auch der Rückgabewert einer weiteren Funktion sein.

Da bietet sich das erwähnte trim() hervorragend an... und dein Ausdruck bleibt übersichtlich...
Wenns dann an die wirkliche "Arbeit" geht, die nur preg_replace() erledigen kann, wirst du dankbar sein für diese Übersichtlichkeit;)
 
trim entfernt aber nur alle Leerzeichen vor und nach den String aber nicht in den String. Trim währe deshalb glaub ich nicht so geeignet.

mfg lomo
 
OK danke allerseits. Ich habe wohl eingesehen, dass man Reguläre Ausdrücke nicht in zwei, drei Tagen lernen kann. Werde zunächst aus Zeitersparnis auch noch o.g. PHP-Funktionen benutzen. :D
 
Zurück