Siechfred: Parsen mit Hilfe des Range-Operators

Beitrag lesen

Tag malte.

versuche gerade aus einer logdatei bestimmte teile heraus zu extrahieren...
ich möchte z.b. alles zwischen "virtual_server" und "}\s}" aus einem string ($string) haben.

Zeilenübergreifend?

habe jetzt von diesem ".." operator gehört

Das Ding heißt Range-Operator.

[...] cockbook [...]

Jesses, das ist ja hahnebüchend ;-))

while ($string) {
    if (/virtual_server/ .. /}\s}/) {
        #wie drucke ich jetzt die zu extrhierenden zeichen aus??
    }
}

Entweder über $_ oder indem du in der IF-Anweisung eine Kontrollvariable anlegst. Übrigens, willst du die Zeichenklasse \s nutzen oder steht das da im Klartext? Letztenfalls müsstest du m.E. den Backslash noch maskieren. Vom Prinzip jedenfalls müsste es so funktionieren:

while ($string) {  
  if (/virtual_server/ .. /}\s}/) {  
    $erg .= $_;  
  }  
}  
print $erg;

Siechfred