Reguläre Ausdrücke. Eine Zeichenkette mit RegEx abbilden und dann ausschneiden.

d0x

Grünschnabel
Hallo,

es geht darum aus einer Zeile, z.B.:
# 7 "d0x" STEAM_0:0:14156876 00:34 58 0 active 84.139.224.148:27005

Die Zeichenkette "0:0:14156876" auszuschneiden.

Die Zahlen können sich natürlich immer ändern, daher sollte es eine Regex Lösung sein.

Um diese Zeichenkette abzubilden habe ich folgedes regex entwurfen:
PHP:
/[0-9]:[0-9]:[0-9]+/

Nun möchte ich aus genau diese Zeichenkette (also "0:0:14156876") in einen String gespeichert haben.

Wie mach ich das?



Bisher habe ich nur genau die umgekehrte Lösung:
PHP:
	$zeile = '# 7 "d0x" STEAM_0:0:14156876 00:34 58 0 active 84.139.224.148:27005';
	
	$steamid = preg_replace('/[0-9]:[0-9]:[0-9]+/', '', $zeile);
	
	echo $zeile."<br /><br />".$steamid;
welche dieses Ergebnis bringt:

PHP:
# 7 "d0x" STEAM_0:0:14156876 00:34 58 0 active 84.139.224.148:27005

# 7 "d0x" STEAM_ 00:34 58 0 active 84.139.224.148:27005

Ich bin wirklich am verzweifeln. Das mit dem ^ zum negieren funktioniert auch nicht.

Jemand eine Idee.


Vielen Dank.
 
Hi,

versuch's mal so:

PHP:
$zeile = '# 7 "d0x" STEAM_0:0:14156876 00:34 58 0 active 84.139.224.148:27005';
$steamid = preg_replace('/(.*)([0-9]:[0-9]:[0-9]+)(.*)/', '\2', $zeile);
echo $zeile."<br /><br />".$steamid;

LG
 
Wunderbar, -danke für die schnelle Antwort. Hätte ich doch besser schon um 17:00 Uhr gefragt :).


Viele Grüße,
Chris.
 
Mit preg_match() kannst du nach Übereinstimmungen prüfen. Die preg_replace()-Funktion hingegen ersetzt das Gefundene.
 
Zurück