[Regex] Probleme mit Gruppierung

Renegade

Well-known member
ID: 159167
L
3 August 2006
851
77
Hi,

Ich habe einen String:
Code:
"hostname" is "muh"

und brauche dafür ein Regulären Ausdruck, der mir nur
Code:
muh
als Ergebnis ausgibt.
Mein erster Versuch:
Code:
^(?:\"hostname\" is \"){1}(.*)(?:\"){1}$

Allerdings bekomme ich da zwei Ergebnisse:
Code:
"hostname" is "muh"
muh


Auch folgendes klappt nicht:
Code:
^(?:(?:\"hostname\" is \"){1}(.*)(?:\"){1})$

Da bekomme ich das gleiche Ergebniss :(
Könnt ihr mir auf die Sprünge helfen?
 
Code:
/^"hostname" is "(\w+)"$/i

die Zeichenklasse für den hostnamen musst du natürlich noch auf die Bedürfnisse anpassen
 
nein.. das Problem ist, dass das erste Element im Array immer der gesammte String ist... also $var[0] ist immer der gesammt durchsuchte String... wenn du den nicht drin haben willst, dann musst du den aus dem Array löschen. Wie das geht findest du über google oder php.net
 
Hi,

:ugly: :wall:
Und ich mache mir die ganze Zeit darüber Gedanken :D

Danke an euch beiden :)

(@Quark007: Der Regex ist eigentlich garnicht für PHP, aber die Testseite baut darauf auf ... :))
 
neija man könnte auch machen, dass wirklich nur der Ergebnis-String kommt (mit look-forward oder so).
Aber ich finde das stört ja net wirklich.