Autor |
Nachricht |
dkl
Threadersteller
Dabei seit: 30.07.2007
Ort: Halle (Saale)
Alter: 44
Geschlecht:
|
Verfasst Fr 24.08.2007 14:36
Titel [php] Zeichenkette zwischen zwei Klammern entfernen |
|
|
Hallo,
ich habe einen String der Form "Benutzername(Vorname Nachname)" und will/muss alle Zeichen zwischen den Klammern und die Klammern entfernen, so das am Ende nur der Benutzername übrigbleibt.
Ich vermute, dass sich die Lösung mit regulären Ausdrücken finden lässt, aber leider habe ich damit keine Erfahrung. Hat jemand eine Lösung für die Aufgabe?
Viele Grüße und vielen Dank schonmal,
Dan
|
|
|
|
|
Backware
Dabei seit: 09.12.2004
Ort: bei Köln
Alter: 38
Geschlecht:
|
Verfasst Fr 24.08.2007 14:50
Titel Re: [php] Zeichenkette zwischen zwei Klammern entfernen |
|
|
dkl hat geschrieben: | Hallo,
ich habe einen String der Form "Benutzername(Vorname Nachname)" und will/muss alle Zeichen zwischen den Klammern und die Klammern entfernen, so das am Ende nur der Benutzername übrigbleibt.
Ich vermute, dass sich die Lösung mit regulären Ausdrücken finden lässt, aber leider habe ich damit keine Erfahrung. Hat jemand eine Lösung für die Aufgabe?
Viele Grüße und vielen Dank schonmal,
Dan |
Ganz einfach: ^(\w+)\(.+$
Edit sagt, ich sollte ne erklärung abgeben:
^ = Start
( = Ab hier brauchen wir was
\w = jedes Zeichen (musst du auf die deklaration eines "richtigen" benutzernamens anpassen)
+ = egal wieviele Zeichen aber mindestens 1
) = mehr brauchen wir nicht
\( = Das was wir brauchen muss mit einer öffnenden Klammer unterbrochen werden, da alles VOR der klammer nur interessant ist.
.+ = jetzt kann kommen was will... das ist uns einfach egal
$ = Ende
^ und $ sind nicht 100% notwendig.
:-) Viel Spaß.
PS: bzw. noch ein edit:
^([\w\s]+)\(.+$
falls du noch leerzeichen im benutzernamen werlauben willst.
Zuletzt bearbeitet von Backware am Fr 24.08.2007 14:55, insgesamt 3-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
dkl
Threadersteller
Dabei seit: 30.07.2007
Ort: Halle (Saale)
Alter: 44
Geschlecht:
|
Verfasst Fr 24.08.2007 14:57
Titel
|
|
|
Wenn du mir jetzt noch sagen kannst, wie ich das in einem PHP-Befehl realisiere wäre ich dir unendlich dankbar
|
|
|
|
|
dkl
Threadersteller
Dabei seit: 30.07.2007
Ort: Halle (Saale)
Alter: 44
Geschlecht:
|
Verfasst Fr 24.08.2007 15:12
Titel
|
|
|
Habe es mit folgenden Code versucht:
Code: | <?php
$with = "dankling(Daniel Kling)";
$regexp = "^([\w\s]+)\(.+$";
$replace = "";
$without = ereg_replace( $regexp, $replace, $with );
echo "<p>Vorher: ".$with."</p>";
echo "<p>Nachher: ".$without."</p>";
?> |
Die Ausgabe lautet:
Vorher: dankling(Daniel Kling)
Nachher: dankling(Daniel Kling)
|
|
|
|
|
Backware
Dabei seit: 09.12.2004
Ort: bei Köln
Alter: 38
Geschlecht:
|
Verfasst Fr 24.08.2007 15:13
Titel
|
|
|
dkl hat geschrieben: | Wenn du mir jetzt noch sagen kannst, wie ich das in einem PHP-Befehl realisiere wäre ich dir unendlich dankbar |
Ich geb dir was NOCH BESSERES!!!
Ich zeig dir, wie du das lernst .
http://de2.php.net/manual/de/function.preg-match.php
Dort ist die Funktion die du dafür brauchst.
wenn du in deinem String das ganze nur ersetzt haben willst, sprich also den benutzernamen garnicht extrahiert haben willst, dann brauchst du folgendes:
- diese funktion: http://de2.php.net/manual/de/function.preg-replace.php
Wenn du GARNICHT mit PHP kannst, dann frag ich dich, wieso du ein solches Problem hast bzw. das Projekt hast
Für weitere Fragen steh ich gerne in diesem Thread bereit.
|
|
|
|
|
Backware
Dabei seit: 09.12.2004
Ort: bei Köln
Alter: 38
Geschlecht:
|
Verfasst Fr 24.08.2007 15:28
Titel
|
|
|
Hier. Hatte wohl einen Fehler drin wegen dem \w
Code: | $with = "dankling(Daniel Kling)";
$regexp = '^([a-zA-Z0-9\s]+)\(.+$';
$replace = "";
$without = eregi_replace( $regexp, "\\1", $with );
echo "<p>Vorher: ".$with."</p>";
echo "<p>Nachher: ".$without."</p>"; |
Ausgabe bei mir:
Vorher: dankling(Daniel Kling)
Nachher: dankling
|
|
|
|
|
dkl
Threadersteller
Dabei seit: 30.07.2007
Ort: Halle (Saale)
Alter: 44
Geschlecht:
|
Verfasst Fr 24.08.2007 15:34
Titel
|
|
|
Super es klappt ... und wie sieht die regexp aus wenn der Nutzername jetzt noch ein Leerzeichen enthält? Das kann leider auch passieren
|
|
|
|
|
Backware
Dabei seit: 09.12.2004
Ort: bei Köln
Alter: 38
Geschlecht:
|
Verfasst Fr 24.08.2007 15:40
Titel
|
|
|
dkl hat geschrieben: | Super es klappt ... und wie sieht die regexp aus wenn der Nutzername jetzt noch ein Leerzeichen enthält? Das kann leider auch passieren |
^([a-zA-Z0-9 ]+)\(.+$
einfach das \s durch ein leerzeichen ersetzen und gut ist
|
|
|
|
|
|
|
|
Ähnliche Themen |
[PHP]Unbekannte Zeichenkette entfernen
PHP->Zeichenkette abschneiden
PHP Letzten 4 Zeichen löschen und neue Zeichenkette anhängen
Zwei <Forms>, Zwei Checkboxen und ein Problem
Ruby: console vs. Klammern
session id aus url entfernen
|
|