// 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"Tasks: (\d+) total, (\d+) running, (\d+) sleeping, (\d+) stopped, (\d+) zombie").unwrap();
let string = "top - 11:41:04 up 21 min, 1 user, load average: 0.00, 0.01, 0.07
Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.7 us, 2.2 sy, 0.5 ni, 92.0 id, 0.3 wa, 0.0 hi, 0.3 si,
KiB Mem: 501692 total, 475348 used, 26344 free, 13032 buffers
KiB Swap: 0 total, 0 used, 0 free. 281204 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
1 root 20 0 33632 2940 1468 S 0.0 0.6 0:01.87
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01
...
17836 www-data 20 0 287448 6708 2424 S 0.0 1.3 0:00.02
17914 vagrant 20 0 23528 1396 1048 R 0.0 0.3 0:00.00";
// 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/