// 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"(?<=\ id\ \|.)(([a-zA-Z0-9_]{8})-([a-zA-Z0-9_]{4})-([a-zA-Z0-9_]{4})-([a-zA-Z0-9_]{4})-([a-zA-Z0-9_]{12}))").unwrap();
let string = "Created a new subnet:
+-------------------+------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------+
| allocation_pools | {\"start\": \"10.42.42.2\", \"end\": \"10.42.42.254\"} |
| cidr | 10.42.42.0/24 | | dns_nameservers | | | enable_dhcp | True |
| gateway_ip | 10.42.42.1 |
| host_routes | |
| id | 3eded702-2909-4515-bf74-7c7c2c7c96e3 |
| ip_version | 4 |
| ipv6_address_mode | |
| ipv6_ra_mode | |
| name | Atelier |
| network_id | 5d15b14c-1d39-48d5-8f48-0dfd68c98d47 |
| tenant_id | d3c17d0e8bd742ed939794a98991886f
| +-------------------+------------------------------------------------+
";
// result will be a tuple containing the start and end indices for the first match in the string
let result = regex.captures(string);
let (start, end) = match result {
Some((s, e)) => (s, e),
None => {
// ...
}
};
println!("{}", &string[start, end]);
}
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/