web-dev-qa-db-fra.com

Regex pour obtenir les mots après la chaîne correspondante

Ci-dessous le contenu:

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

Je dois capturer les mots après le Object Name: Word dans cette ligne. Qui est D:\ApacheTomcat\Apache-Tomcat-6.0.36\logs\localhost.2013-07-01.log. J'espère que quelqu'un pourra m'aider avec ça.

^.*\bObject Name\b.*$ correspond à - Nom de l'objet

58
Chamara Keragala

Ce qui suit devrait fonctionner pour vous:

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

Exemple de travail

Votre match souhaité sera dans le groupe de capture 1.


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

Serait similaire mais ne permettrait pas des choses telles que "blah Nom d'objet: bla" et veillez également à ne pas capturer la ligne suivante s'il n'y a pas de contenu réel après "Nom d'objet:"

40
Dallas

Mais j'ai besoin que le résultat du match soit ... pas dans un groupe de match ...

Pour ce que vous essayez de faire, cela devrait fonctionner. \K réinitialise le point de départ du match.

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

Vous pouvez faire la même chose pour obtenir vos correspondances Security ID.

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

Tu y es presque. Utilisez les expressions rationnelles suivantes (avec l'option multiligne activée)

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

Le match complet serait

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

tandis que le groupe capturé contiendrait

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

Si vous voulez capturer le chemin du fichier directement, utilisez

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

Cela pourrait fonctionner pour vous en fonction de la langue que vous utilisez

(?<=Object Name:).*

C'est une affirmation positive. Plus d'informations pourraient être trouvées ici

Cela ne fonctionnera pas avec le script Java cependant. Dans votre commentaire, j'ai lu que vous l'utilisiez pour logstash. Si vous utilisez l'analyse GROK pour logstash, cela fonctionnera. Vous pouvez vous vérifier ici

https://grokdebug.herokuapp.com/

enter image description here

2
Himanshu Chauhan