use onig::*; fn scan_callback<'t>(n: i32, caps: Captures<'t>) -> bool { println!("scan: {}", n); println!("match at {}", caps.offset()); for (i, cap) in caps.iter_pos().enumerate() { match cap { Some(pos) => println!("{}: {:?}", i, pos), None => println!("{}: did not capture", i), } } true } fn exec(pattern: &str, to_match: &str) { let reg = Regex::new(pattern).unwrap(); reg.scan(to_match, scan_callback); } fn main() { exec("\\Ga+\\s*", "a aa aaa baaa"); exec("a+\\s*", "a aa aaa baaa"); }