// 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#"("|\s)(?<key>(CN|C|O|OU|S))=(?<value>[^=\"]+)(?=(\s|"))"#).unwrap();
let string = "ssl_issuer=\"CN=DigiCert SHA2 High Assurance Server CA C=US O=DigiCert Inc OU=www.digicert.com\" ssl_hash=\"f41565b049f039e765a0f8be8271a4b4817b7378\" ssl_subject=\"CN=syndication.twitter.com C=US S=California O=Twitter, Inc. OU=Twitter Security\" ssl_start_time=\"Wed Jun 29 00:00:00 2016 UTC\" ssl_end_time=\"Mon Sep 16 12:00:00 2019 UTC\" ssl_type=\"X.509 Certificate\" ssl_extended_key_usage=\"Server Authentication, Client Authentication\" ssl_key_length=\"2048 bits\" ssl_key_usage=\"Digital Signature, Key Encipherment\"
ssl_subject=\"CN=*.eu-west-1.webrootcloudav.com\" ssl_start_time=\"Tue Aug 22 00:00:00 2017 UTC\" ssl_end_time=\"Sat Sep 22 12:00:00 2018 UTC\" ssl_type=\"X.509 Certificate\" ssl_extended_key_usage=\"\" ssl_key_length=\"2048 bits\" ssl_key_usage=\"Digital Signature, Non-Repudiation, Key Encipherment\"
ssl_subject=\"CN=*.us.static.hrsmart.com C=US S=Virginia O=Deltek, Inc. OU=Security Services\" ssl_start_time=\"Thu Jan 11 00:00:00 2018 UTC\" ssl_end_time=\"Sun Mar 31 12:00:00 2019 UTC\" ssl_type=\"X.509 Certificate\" ssl_extended_key_usage=\"Server Authentication, Client Authentication\" ssl_key_length=\"2048 bits\" ssl_key_usage=\"Digital Signature, Key Encipherment\"
ssl_subject=\"CN=*.googleapis.com C=US S=California O=Google Inc\" ssl_start_time=\"Tue Mar 13 18:57:10 2018 UTC\" ssl_end_time=\"Tue Jun 5 18:17:00 2018 UTC\" ssl_type=\"X.509 Certificate\" ssl_extended_key_usage=\"Server Authentication, Client Authentication\" ssl_key_length=\"0 bits\" ssl_key_usage=\"Digital Signature, Certificate Signing, CRL Signing\"
ssl_subject=\"CN=subscription.rhsm.redhat.com C=US S=North Carolina O=Red Hat, Inc. OU=Red Hat Network\" ssl_start_time=\"Thu May 18 16:30:24 2017 UTC\" ssl_end_time=\"Sat May 18 16:30:24 2019 UTC\" ssl_type=\"X.509 Certificate\" ssl_extended_key_usage=\"Server Authentication\" ssl_key_length=\"4096 bits\" ssl_key_usage=\"\"";
// 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/