подстрока в питоне - PullRequest
       7

подстрока в питоне

1 голос
/ 01 марта 2011

у меня есть строки со следующим шаблоном в python:

2011-03-01 14:10:43 C:\Scan\raisoax.exe detected    Trojan.Win32.VBKrypt.agqw

как получить подстроки: C: \ Scan \ raisoax.exe и Trojan.Win32.VBKrypt.agqw

между строками есть табуляция

Ответы [ 5 ]

4 голосов
/ 01 марта 2011

просто используйте метод подстроки строки Python.

s = r"2011-03-01 14:10:43 C:\Scan\raisoax.exe detected    Trojan.Win32.VBKrypt.agqw"
s.split("\t")

получает вас

['2011-03-01 14:10:43 C:\\\\Scan\\raisoax.exe detected', 'Trojan.Win32.VBKrypt.agqw']
3 голосов
/ 01 марта 2011

Решение с использованием регулярных выражений:

s = "2011-03-01 14:10:43 C:\Scan\raisoax.exe detected    Trojan.Win32.VBKrypt.agqw"
reg = re.match(r"\S*\s\S*\s(.*)[^\ ] detected\s+(.*)",s)
file,name = reg.groups()

Это также будет ловить файлы с пробелами в них. Это не удастся, если у вас есть файлы с «обнаружены» в них. (Вы можете добавить прямое утверждение, чтобы исправить это.

2 голосов
/ 01 марта 2011
s = r"2011-03-01 14:10:43 C:\Scan\raisoax.exe detected    Trojan.Win32.VBKrypt.agqw"
v = s.split()
print v[-1] # gives you Trojan.Win32.VBKrypt.agqw
print v[-3] # gives you C:\Scan\raisoax.exe

Чтобы обработать пробелы в именах файлов, попробуйте

print " ".join(v[2:-2])
1 голос
/ 01 марта 2011

Используйте повторный пакет.Что-то вроде

import re
s = r'2011-03-01 14:10:43 C:\Scan\raisoax.exe detected    Trojan.Win32.VBKrypt.agqw'
m = re.search('\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\s(.+)\s+detected\s+(.+)', s)
print 'file: ' + m.group(1)
print 'error: ' + m.group(2)
0 голосов
/ 26 июня 2018

Вы можете использовать этот пакет под названием "substring". Просто введите "pip install substring". Вы можете получить подстроку, просто упомянув начальный и конечный символы / индексы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...