Я пытаюсь создать регулярное выражение (import re
), чтобы извлечь информацию, которую я хочу из файла журнала.Regex для проверки нескольких строк
ОБНОВЛЕНИЕ: Добавлены права доступа к папке C:\WINDOWS\security
, которые разбили все коды образцов.
Say формат журнала является:
C:\:
BUILTIN\Administrators Allowed: Full Control
NT AUTHORITY\SYSTEM Allowed: Full Control
BUILTIN\Users Allowed: Read & Execute
BUILTIN\Users Allowed: Special Permissions:
Create Folders
BUILTIN\Users Allowed: Special Permissions:
Create Files
\Everyone Allowed: Read & Execute
(No auditing)
C:\WINDOWS\system32:
BUILTIN\Users Allowed: Read & Execute
BUILTIN\Power Users Allowed: Modify
BUILTIN\Power Users Allowed: Special Permissions:
Delete
BUILTIN\Administrators Allowed: Full Control
NT AUTHORITY\SYSTEM Allowed: Full Control
(No auditing)
C:\WINDOWS\system32\config:
BUILTIN\Users Allowed: Read & Execute
BUILTIN\Power Users Allowed: Read & Execute
BUILTIN\Administrators Allowed: Full Control
NT AUTHORITY\SYSTEM Allowed: Full Control
(No auditing)
C:\WINDOWS\security:
BUILTIN\Users Allowed: Special Permissions:
Traverse Folder
Read Attributes
Read Permissions
BUILTIN\Power Users Allowed: Special Permissions:
Traverse Folder
Read Attributes
Read Permissions
BUILTIN\Administrators Allowed: Full Control
NT AUTHORITY\SYSTEM Allowed: Full Control
(No auditing)
И это повторяется несколько других каталогов. Как я могу разбить их на paragraphs
, а затем проверить строки, содержащие Special Permissions:
?
Как это:
- Раздельное весь string1 в несколько частей,
C:\
иC:\WINDOWS\system32
. - Посмотрите в каждой строке, которая содержит 'специальные разрешения:'
- Показать все строки, например:
C:\:
BUILTIN\Users Allowed: Special Permissions: \n\
Create Folders\n\
BUILTIN\Users Allowed: Special Permissions: \n\
Create Files\n\
- Повторите эти действия для следующего 'пункта'
I думал о: 1. Искать весь текстовый файл для r"(\w+:\\)(\w+\\?)*:"
- верните мне путь 2. Функция Строка или регулярное выражение, чтобы получить остальную часть выходного 3. Удалить все другие строки, кроме тех, с Special Permissions
4. Дисплей и повторите шаг 1
Но я думаю, что это не эффективно.
Может ли кто-нибудь навестить меня на этом? Благодарю.
Пример вывода:
C:\:
BUILTIN\Users Allowed: Special Permissions:
Create Folders
BUILTIN\Users Allowed: Special Permissions:
Create Files
C:\WINDOWS\system32:
BUILTIN\Power Users Allowed: Special Permissions:
Delete
C:\WINDOWS\security:
BUILTIN\Users Allowed: Special Permissions:
Traverse Folder
Read Attributes
Read Permissions
BUILTIN\Power Users Allowed: Special Permissions:
Traverse Folder
Read Attributes
Read Permissions
C:\WINDOWS\system32\config
не показывает, как нет специального разрешения в линиях.
Шаблон я использую:
import re
text = ""
def main():
f = open('DirectoryPermissions.xls', 'r')
global text
for line in f:
text = text + line
f.close
print text
def regex():
global text
<insert code here>
if __name__ == '__main__':
main()
regex()
Используйте 're' модуль, а не' regex'. Кроме того, просмотрите строки с тремя кавычками. – nmichaels
Какие данные вы хотите в конце? – MattH
@nmichaels, Lol Я отредактировал, я использую 'import re' @MattH - Чтобы показать полную строку (строки), содержащую' Специальные разрешения: 'в каждом пути –