rustc/vendor/onig-6.4.0/examples/scan.rs
2024-07-31 08:40:13 +02:00

26 lines
575 B
Rust

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");
}