207.46.13.93 - - [31/Mar/2012:19:43:19 +0530] GET /robots.txt HTTP/1.1 404 613 - Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) 64.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846 64.242.88.10 - - [07/Mar/2004:16:06:51 -0800] "GET /twiki/bin/rdiff/TWiki/NewUserTemplate?rev1=1.3&rev2=1.2 HTTP/1.1" 200 4523 64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291
Antwort
es viel besser ist ein Protokoll-Parser zu verwenden, aber man könnte diese regex verwenden zu extrahieren Protokollinformationen:
(?<ip>\d+\.\d+\.\d+\.\d+)[\s-]+(?<date>\[.*\])[\s"]+(?<method>\w+)\s+(?<url>[^\s]+)\s+(?<protocol>[^\s]+)[\s"]+(?<status>\d+)\s+(?<length>\d+)([ -]+(?<useragent>.*))?
Erklärung
(?<ip>\d+\.\d+\.\d+\.\d+)
Eine IP =>ip Gruppe
[\s-]+
entweder ein Leerzeichen oder ein Bindestrich, mindestens eine Zeit
(?<date>\[.*\])
[beliebiges Zeichen folgt, aber a] => erfassen Datum
[\s"]+
entweder ein Leerzeichen oder ein doppeltes Anführungszeichen, mindestens eine Zeit
(?<method>\w+)
einige Wortzeichen => Erfassung Methode
\s+
mindestens ein Leerzeichen
(?<url>[^\s]+)
Jedes Zeichen, sondern ein Leerzeichen, mindestens einmal => Erfassung url
\s+
mindestens ein Leerzeichen
(?<protocol>[^\s]+)
Jedes Zeichen, sondern ein Leerzeichen, mindestens einmal => Erfassung Protokoll
[\s"]+
entweder ein Leerzeichen oder ein doppeltes Anführungszeichen, zumindest eine Zeit
(?<status>\d+)
einige stellige Zeichen => Erfassung Status
\s+
mindestens ein Leerzeichen
(?<length>\d+)
einige stellige Zeichen => erfassen Länge
([ -]+(?<useragent>.*))?
Optionale Leerzeichen oder Bindestriche durch benutzer- gefolgt agent => erfassen useragent
- 1. extrahieren Sie die Abmessungen aus den Kopfzeilen der Textdatei
- 2. Verknüpfungen aus Textdatei extrahieren
- 3. convert Ausdruck in der allgemeinen Registeroperation Modelle
- 4. Zeilen aus Textdatei extrahieren
- 5. Mehrere übereinstimmende Muster aus der Textdatei extrahieren
- 6. PL/SQL extrahieren Spalten aus der Textdatei
- 7. Extrahieren von Daten aus Zeilen einer Textdatei
- 8. Wie kann ich den regulären Ausdruck aus einem RegularExpressionAttribute extrahieren?
- 9. Regulärer Ausdruck Worte aus Zeichenfolge zu extrahieren
- 10. Extrahieren von verschiedenen Daten aus der gleichen Tabelle wie verschiedene Felder mit zusätzlichen Tabellen als Lookups
- 11. Wie der Ausdruck mit verschiedenen Mustern übereinstimmen
- 12. Regulärer Ausdruck, um den Titel von der Webseite zu extrahieren
- 13. Wollen Sie Werte aus einer Textdatei extrahieren regex wie oben
- 14. Felder aus verschiedenen Zeilen vergleichen
- 15. Nummer aus einer formatierten Textdatei extrahieren Java
- 16. Regulärer Ausdruck in PHP zu extrahieren Minuten und Sekunden Werte
- 17. Abfrage derselben Felder aus verschiedenen Tabellen
- 18. C# Liste der Felder aus der Liste der Klasse extrahieren
- 19. Regulärer Ausdruck Extrahieren der Zahlenbemaßung
- 20. Daten in verschiedenen Formaten aus verschiedenen Zeichenketten in JavaScript extrahieren
- 21. Extrahieren und Anzeigen von Daten aus Textdatei in C
- 22. korrekte Regex wie Datum mal aus Ausdruck zu extrahieren dieser
- 23. Extrahieren von benutzerdefinierten Tags aus Textdatei
- 24. Wie links die allgemeinen Felder zwischen zwei Tabellen
- 25. PHP: Wert aus JSON-Array extrahieren
- 26. Wie drei Felder aus drei verschiedenen tables.MySQL
- 27. preg_match Ausdruck für alles zu extrahieren, aber "[]"
- 28. Extrahieren von Token aus einer Textdatei?
- 29. Extrahieren von Spalten aus Textdatei mit Powershell
- 30. Wie in einer Textdatei nur die Felder, die Daten
Bitte stellen Sie eine Frage richtig ... ich sehe nur ein rohes Protokoll ... –
Wie bekomme ich dieses Protokoll getrennt von jedem Feld mit Regex? – Bala