File: scan.rs

package info (click to toggle)
rust-onig 6.3.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 308 kB
  • sloc: makefile: 4
file content (27 lines) | stat: -rw-r--r-- 595 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
extern crate onig;

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