Как создать Поиск регулярных выражений Python для извлечения определенных значений из журналов сервера
Я ищу предложения по созданию поиска на основе регулярных выражений в Python. У меня есть следующий тип строковых значений в файле журнала сервера,
2017-03-18 13:24:05,791 INFO [STDOUT] SUB Request Status :Resubmitted INBIOS_ABZ824
2017-03-12 13:24:05,796 INFO [STDOUT] SUB Submit Status :Resubmitted INDROS_MSR656
2017-04-12 13:24:05,991 INFO [STDOUT] SUB Request Status :Resubmitted INHP_GSN848
и мне нужно найти журнал и извлечь следующие значения,
2017-03-18 13:24:05,791 INBIOS_ABZ824
2017-03-12 13:24:05,796 INDROS_MSR656
2017-04-12 13:24:05,991 INHP_GSN848
Я использую следующий код, но он извлекает полную строку, где присутствуют такие строки (INBIOS_ABZ824). Как я могу извлечь только указанные значения из журнала, как указано выше, пожалуйста, поделитесь своими мыслями
Что я уже пробовал:
import os import re # Regex used to match relevant loglines (in this case) line_regex = re.compile(r"[A-Z]+TECH_[A-Z]+[0-9]+", re.IGNORECASE) # Output file, where the matched loglines will be copied to output_filename = os.path.normpath("output.log") # Overwrites the file, ensure we're starting out with a blank file with open(output_filename, "w") as out_file: out_file.write("") # Open output file in 'append' mode with open(output_filename, "a") as out_file: # Open input file in 'read' mode with open("ServerError.txt", "r") as in_file: # Loop over each log line for line in in_file: # If log line matches our regex, print to console, and output file if (line_regex.search(line)): print(line) out_file.write(line)