// 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)^\"\w+\"\,(?:\")?(?<process>([\w|\s|\,|\.|\-|\+]+)?)(?:\")?\,\"(?<handles>\d+)\"\,\"(?<VM>[\-\d|\d]+)\"\,\"(?<WS>\d+)\"\,\"(?<PM>\d+)\"\,\"(?<NPM>\d+)\"\,(?:\")?(?<Path>([a-zA-Z]\:\\[\\\w\s\.\-\(\)\+|*\w]+)?)(?:\")?\,(?:\")?(?<Company>([\w|\s|\,|\.|\@]+)?)(?:\")?\,(?:\")?(?<CPU>[\d|\.]+)?(?:\")?\,(?:\")?(?<FileVersion>[\d|\.|\s|\(|\w|\_|\-|\)]+)?(?:\")?\,(?:\")?(?<ProductVersion>[\d|\.|\s|\(|\w|\_|\-|\)]+)?(?:\")?\,(?:\")?(?<Description>[\d|\.|\s|\(|\w|\_|\-|\|\+|\:)]+)?(?:\")?\,(?:\")?(?<Product>[\w|\s|\®|\+|\(|\)]+)?(?:\")?\,(?:\")?(?<Id>[\w|\s|\®|\+|\(|\)]+)?(?:\")?\,(?:\")?(?<PriorityClass>[\w|\s|\®|\+|\(|\)]+)?(?:\")?\,(?:\")?(?<HandleCount>[\w|\s|\®|\+|\(|\)]+)?(?:\")?\,"#).unwrap();
let string = "\"Process\",\"ServerManager\",\"509\",\"830853120\",\"149446656\",\"125960192\",\"31992\",\"C:\\Windows\\system32\\ServerManager.exe\",\"Microsoft Corporation\",\"140.25\",\"6.3.9600.17238 (winblue_gdr.140723-2018)\",\"6.3.9600.17238\",\"Server Manager\",\"Microsoft® Windows® Operating System\",\"18324\",\"Normal\",\"509\",\"149446656\",\"125960192\",\"125960192\",\"830853120\",\"00:02:20.2500000\",\"8\",,\"False\",,\"2200\",\"Microsoft.Win32.SafeHandles.SafeProcessHandle\",\".\",\"65976\",\"Server Manager\",\"System.Diagnostics.ProcessModule (ServerManager.exe)\",\"1413120\",\"204800\",\"System.Diagnostics.ProcessModuleCollection\",\"31992\",\"31992\",\"125960192\",\"741880\",\"741880\",\"256077824\",\"256077824\",\"279134208\",\"279134208\",\"885768192\",\"885768192\",\"True\",\"125960192\",\"00:00:27.8125000\",\"ServerManager\",\"255\",\"True\",\"1\",\"System.Diagnostics.ProcessStartInfo\",\"1/26/2020 3:22:29 PM\",,\"System.Diagnostics.ProcessThreadCollection\",\"00:01:52.4375000\",\"830853120\",\"False\",,,,\"149446656\",,";
// 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/