Regex, aby uzyskać słowa po dopasowaniu łańcucha
Poniżej treść:
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
Muszę uchwycić słowa po Object Name:
w tej linijce. Czyli D:\ApacheTomcat\apache-tomcat-6.0.36\logs\localhost.2013-07-01.log
.
^.*\bObject Name\b.*$
matches-nazwa obiektu
6 answers
Następujące powinny działać dla Ciebie:
[\n\r].*Object Name:\s*([^\n\r]*)
Twój pożądany mecz będzie w grupie przechwytywania 1.
[\n\r][ \t]*Object Name:[ \t]*([^\n\r]*)
Byłoby podobne, ale nie pozwalałoby na rzeczy takie jak "blah nazwa obiektu: blah", a także upewnij się, że nie przechwytywanie następnej linii, jeśli nie ma rzeczywistej zawartości po "nazwa obiektu:"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-05 02:18:26
To, co próbujesz zrobić, powinno zadziałać.Ale potrzebuję wyniku meczu ... Nie w grupie meczowej...
\K
resetuje punkt początkowy meczu.
\bObject Name:\s+\K\S+
Możesz zrobić to samo, aby zdobyć swoje Security ID
mecze.
\bSecurity ID:\s+\K\S+
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-10 17:40:20
Już prawie jesteś. Użyj następującego wyrażenia regularnego (z włączoną opcją wielowierszową)
\bObject Name:\s+(.*)$
Kompletny mecz będzie
Object Name: D:\ApacheTomcat\apache-tomcat-6.0.36\logs\localhost.2013-07-01.log
Podczas gdy zdobyta grupa będzie zawierać
D:\ApacheTomcat\apache-tomcat-6.0.36\logs\localhost.2013-07-01.log
Jeśli chcesz przechwycić ścieżkę pliku bezpośrednio użyj
(?m)(?<=\bObject Name:).*$
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-05 02:34:10
To może Ci się udać w zależności od tego, jakiego języka używasz:
(?<=Object Name:).*
To pozytywne twierdzenie lookbehinda. Więcej informacji można znaleźć tutaj .
To nie będzie działać z JavaScript choć. W Twoim komentarzu przeczytałem, że używasz go do logstash. Jeśli używasz parsowania GROK dla logstash, to zadziała. Możesz to sam zweryfikować tutaj:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-11 18:04:15
Jest To rozwiązanie Pythona.
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']
>>>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-11 18:05:38
Oto szybki skrypt Perla, aby uzyskać to, czego potrzebujesz. Potrzebuje trochę spacji.
#!/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";
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-11 18:07:14