regulares probar numeros expresiones ejemplos regex expression regex-negation regex-lookarounds

probar - Regex para obtener las palabras después de unir la cadena



expresiones regulares javascript pdf (6)

A continuación se muestra el contenido:

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

Necesito capturar las palabras después del Object Name: del Object Name: palabra en esa línea. Que es D:/ApacheTomcat/apache-tomcat-6.0.36/logs/localhost.2013-07-01.log . Espero que alguien me pueda ayudar con esto.

^.*/bObject Name/b.*$ coincide - Nombre del objeto


Pero necesito que el resultado del partido sea ... no en un grupo de partidos ...

Por lo que está tratando de hacer, esto debería funcionar. /K restablece el punto de partida de la partida.

/bObject Name:/s+/K/S+

Puede hacer lo mismo para obtener sus coincidencias de Security ID .

/bSecurity ID:/s+/K/S+


Aquí hay un script de perl rápido para obtener lo que necesita. Necesita algunos espacios en blanco masticando.

#!/bin/perl $sample = <<END; 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 END my @sample_lines = split //n/, $sample; my $path; foreach my $line (@sample_lines) { ($path) = $line =~ m/Object Name:([^s]+)/g; if($path) { print $path . "/n"; } }


Esta es la solución de Python.

import re line ="""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""" regex = (r''Object Name:/s+(.*)'') match1= re.findall(regex,line) print (match1) *** Remote Interpreter Reinitialized *** >>> [''D://ApacheTomcat/x07pache-tomcat-6.0.36//logs//localhost.2013-07-01.log''] >>>


Esto podría funcionar para usted dependiendo del idioma que esté usando

(?<=Object Name:).*

Es una afirmación positiva detrás de la afirmación. Más información se puede encontrar here

Sin embargo, no funcionará con el script java. En tu comentario, leí que lo estás usando para logstash. Si está utilizando el análisis GROK para logstash, entonces funcionará. Puedes verificarlo aquí

https://grokdebug.herokuapp.com/


Lo siguiente debería funcionar para usted:

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

Ejemplo de trabajo

Su partido deseado será en el grupo de captura 1.

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

Sería similar pero no permitiría cosas como "blah Nombre de objeto: blah" y también asegúrese de no capturar la siguiente línea si no hay contenido real después de "Nombre de objeto:"


Ya casi estás ahí. Utilice la siguiente expresión regular (con la opción multilínea habilitada)

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

El partido completo sería

Object Name: D:/ApacheTomcat/apache-tomcat-6.0.36/logs/localhost.2013-07-01.log

mientras que el grupo capturado uno contendría

D:/ApacheTomcat/apache-tomcat-6.0.36/logs/localhost.2013-07-01.log

Si desea capturar la ruta del archivo directamente use

(?m)(?<=/bObject Name:).*$