webentwicklung-frage-antwort-db.com.de

Regex, um die Wörter nach dem Abgleichen der Zeichenfolge zu erhalten

Unten ist der Inhalt:

Subject:
    Security ID:        S-1-5-21-3368353891-1012177287-890106238-22451
    Account Name:       ChamaraKer
    Account Domain:     JIC
    Logon ID:       0x1fffb

Object:
    Object Server:  Security
    Object Type:    File
    Object Name:    D:\ApacheTomcat\Apache-Tomcat-6.0.36\logs\localhost.2013-07-01.log
    Handle ID:  0x11dc

Ich muss die Wörter nach dem Wort Object Name: In dieser Zeile erfassen. Welches ist D:\ApacheTomcat\Apache-Tomcat-6.0.36\logs\localhost.2013-07-01.log. Ich hoffe, jemand kann mir dabei helfen.

^.*\bObject Name\b.*$ Entspricht - Objektname

58

Folgendes sollte für Sie funktionieren:

[\n\r].*Object Name:\s*([^\n\r]*)

Arbeitsbeispiel

Ihr gewünschtes Match wird in der Eroberungsgruppe 1 sein.


[\n\r][ \t]*Object Name:[ \t]*([^\n\r]*)

Wäre ähnlich, würde aber Dinge wie "blah Object Name: blah" nicht berücksichtigen und auch sicherstellen, dass die nächste Zeile nicht erfasst wird, wenn nach "Object Name:" kein tatsächlicher Inhalt vorhanden ist.

40
Dallas

Aber ich brauche das Matchergebnis, um ... nicht in einer Matchgruppe zu sein ...

Für das, was Sie versuchen, sollte dies funktionieren. \K setzt den Startpunkt des Spiels zurück.

\bObject Name:\s+\K\S+

Sie können das Gleiche tun, um Ihr Security ID Streichhölzer.

\bSecurity ID:\s+\K\S+
43
hwnd

Du bist fast da. Verwenden Sie den folgenden regulären Ausdruck (mit aktivierter Option für mehrere Zeilen)

\bObject Name:\s+(.*)$

Das komplette Spiel wäre

Object Name:   D:\ApacheTomcat\Apache-Tomcat-6.0.36\logs\localhost.2013-07-01.log

während die erfasste Gruppe enthalten würde

D:\ApacheTomcat\Apache-Tomcat-6.0.36\logs\localhost.2013-07-01.log

Wenn Sie den Dateipfad direkt erfassen möchten, verwenden Sie

(?m)(?<=\bObject Name:).*$
9
Ravi Thapliyal

Dies kann je nach verwendeter Sprache für Sie hilfreich sein

(?<=Object Name:).*

Es ist ein positiver Blick hinter Behauptung. Weitere Informationen finden Sie hier

Es funktioniert jedoch nicht mit Java - Skripten. In Ihrem Kommentar habe ich gelesen, dass Sie es für Logstash verwenden. Wenn Sie GROK-Parsing für Logstash verwenden, funktioniert dies. Hier können Sie sich verifizieren

https://grokdebug.herokuapp.com/

enter image description here

2