regex-Problem

newspace

Grünschnabel
Hallo Leute
ich will einen String aus einer Datei nach Wörtern aufteilen und in eine Datenbank speichern.
Mein Problem besteht jetzt darin einen passenden regex-Befehl zu finden. Habe schon einiges ausprobiert, und schon lange im Internet gesucht, aber ich schaffe nichts sinnvolles.

Eine auszulesende Zeile sieht so aus: " » Wort Zahl:Zahl Zahl.Zahl Wort."
Als Whitespaces kommen sowohl Leerzeichen als auch Tabs vor. Wirklich speichern soll mir der Ausdruck nur das 1. Wort und das Zahl.Zahl.

Mein bisheriger Vorschlag war $wort = ereg("(\S+)\s+(\S+)\s+(\S+)", $zeile, $wort);
Aber dabei kann ich das Array Wort nicht ausgeben. Was mache ich falsch?

Danke schon mal für eure Hilfe
 
Probiers mal so:)
Code:
if(preg_match_all('@^\s*(\w+)\s+\d+:\d+\s+(\d+\.\d+)\s+\w+\.\s*$@',$zeile,$out))
  {
    print_r(array_slice($out,1,2));
  }
 
Falls Svens Vorschlag nicht funktioniert, probier mal folgenden regulären Ausdruck:
Code:
^\s+\xBB\s+(.*)\s+[0-9]+:[0-9]+\s+([0-9]+\.[0-9]+).*$
 
Danke für Eure Antworten.
Aber leider funktionieren beide Vorschläge nicht!
Der erste gibt einfach kein Array aus, d.h. es bleibt leer.
Beim 2. Vorschlag kommt folgende Fehlermeldung: Warning: No ending delimiter '^' found

Aber es kann sein, dass das an meiner Vorgabe liegt: " » Wort Zahl:Zahl Zahl.Zahl Wort."
In Wort kann durchaus auch mal eine Zahl vorkommen, und die Zahlen sind 1-4 stellig.

macht das etwas aus?

Sorry für meine Unkenntnis, von regex hatte ich bis gestern noch nicht mal gehört:-)

Danke nochmal
Bastian
 
Beim 2. Vorschlag kommt folgende Fehlermeldung: Warning: No ending delimiter '^' found
Wenn du eine Funktion verwendest, die mit Perl-kompatiblen regulären Ausdrücken arbeitet (alle Funktionen mit dem Präfix „preg“), sind natürlich noch Delimiter erforderlich.
 
habe das regex mal auf die genauen Bedürfnisse angepasst. So funktioniert es jetzt:

if(preg_match_all('@\s[»]\s([a-zA-Z_0-9]+)\s+\d*[:]\d*\s+(\d*)\.(\d+)\s*\w+\.@',$alli,$out)) {
print_r(array_slice($out,1,3));
}


Danke, ohne Eure Hilfe hätt ich das nie hinbekommen!
 
Zurück