// 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)^(?P<metric>[a-zA-Z_:][a-zA-Z0-9_:]*]*)(?P<labels>\{.*\})?[\t ]*(?P<value>[0-9E.]*)[\t ]*(?P<timestamp>[0-9]+)?$").unwrap();
let string = "jvm_buffer_memory_used_bytes{id=\"direct\",} 81920.0
jvm_buffer_memory_used_bytes{id=\"mapped\",} 0.0
jvm_threads_live 23.0
tomcat_global_received_bytes_total{name=\" http - nio -8080\",} 0.0
tomcat_global_received_bytes_total{name=\"http-nio-8080\",} 0.0
jvm_gc_pause_seconds_count{action=\"end of minor GC\",cause=\"Allocation Failure\",} 7.0
jvm_gc_pause_seconds_sum{action=\"end of minor GC\",cause=\"Allocation Failure\",} 0.232
jvm_gc_pause_seconds_count{action=\"end of minor GC\",cause=\"Metadata GC Threshold\",} 1.0
jvm_gc_pause_seconds_sum{action=\"end of minor GC\",cause=\"Metadata GC Threshold\",} 0.01
jvm_gc_pause_seconds_count{action=\"end of major GC\",cause=\"Metadata GC Threshold\",} 1.0
jvm_gc_pause_seconds_sum{action=\"end of major GC\",cause=\"Metadata GC Threshold\",} 0.302
jvm_gc_pause_seconds_max{action=\"end of minor GC\",cause=\"Allocation Failure\",} 0.0
jvm_gc_pause_seconds_max{action=\"end of minor GC\",cause=\"Metadata GC Threshold\",} 0.0
jvm_gc_pause_seconds_max{action=\"end of major GC\",cause=\"Metadata GC Threshold\",} 0.0
jvm_gc_live_data_size_bytes 5.0657472E7
http_requests_total{method=\"post\",code=\"200\"} 1027 1395066363000
#http_requests_total{method=\"post\",code=\"200\"} 1027 1395066363000
process_cpu_seconds_total 0";
// 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/