// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?m)LOG FORMAT.*\[(.*)\].*#").unwrap();
let string = "#KEEP THIS FILE IN THE SAME DIRECTORY AS __INIT.PY__, OTHERWISE IT WON'T WORK
SETTINGS:
FILE TO BE SORTED: \"C:\\Temp\\xmls - Copy\" #IF YOU ENTER \"in\" HERE THEN YOU CAN ENTER FILENAME FROM THE CONSOLE
MINIMUM DISPLAY LEVEL OF LOGS: 10 #Warning = 30, Info = 20, Debug = 10, Notset = 0
LOG DELIMITER SYMBOL: \"dupa\" #A SYMBOL WHICH SEPARATES THE LOG FORMAT MODULES
FILE TO STORE LOGS: \"DEFAULT\" #TO CHANGE IT, PASTE FULL PATH OF THE CHOSEN DIRECTORY, RMEMBER TO PUT NAME.TXT AT THE END. DEFAULT = directory of __init.py__
LOG FORMAT: [LEVELNAME, ASCTIME, MESSAGE] #A FORMAT IN WHICH LOGS WILL BE STORED IN THE FILE (Surrounded by [] brackets)
***
LIST OF ATTRIBUTES:
LEVELNAME, #Text logging level for the message ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL').
ASCTIME, #Human-readable time when the LogRecord was created. By default this is of the form ‘2003-07-08 16:49:45,896’ (the numbers after the comma are millisecond portion of the time).
MESSAGE, #The logged message, computed as msg % args.
FUNCNAME, #Name of function containing the logging call.
FILENAME, #Filename portion of pathname.
PATHNAME, #Full pathname of the source file where the logging call was issued (if available).
EMPTY #log will not be stored (IT SHOULD BE THE ONLY ONE MODULE IN THE LOG FORMAT)
ADDITIONAL ATTRIBUTES:
CREATED #Time when the LogRecord was created (as returned by time.time()).
LEVELNO #Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL).
LINENO #Source line number where the logging call was issued (if available).
MODULE #Module (name portion of filename).
MSECS #Millisecond portion of the time when the LogRecord was created.
NAME #Name of the logger used to log the call.
PROCESS #Process ID (if available).
PROCESSNAME #Process name (if available).
RELATIVECREATED #Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded.
THREAD #Thread ID (NOT available)
THREADNAME #Thread name (NOT available).
***
";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Rust, please visit: https://docs.rs/regex/latest/regex/