1use onig::*;
2
3fn exec(syntax: &Syntax, pattern: &str, to_search: &str) {
4 let reg = Regex::with_options(pattern, RegexOptions::REGEX_OPTION_NONE, syntax).unwrap();
5
6 match reg.captures(to_search) {
7 Some(caps) => {
8 println!("match at {}", caps.offset());
9 for (i, cap) in caps.iter_pos().enumerate() {
10 match cap {
11 Some(pos) => println!("{}: {:?}", i, pos),
12 None => println!("{}: did not capture", i),
13 }
14 }
15 }
16 None => println!("search fail"),
17 }
18}
19
20fn main() {
21 exec(
22 Syntax::perl(),
23 r"\p{XDigit}\P{XDigit}\p{^XDigit}\P{^XDigit}\p{XDigit}",
24 "bgh3a",
25 );
26
27 exec(Syntax::java(), r"\p{XDigit}\P{XDigit}[a-c&&b-g]", "bgc");
28
29 exec(
30 Syntax::asis(),
31 r"abc def* e+ g?ddd[a-rvvv] (vv){3,7}hv\dvv(?:aczui ss)\W\w$",
32 r"abc def* e+ g?ddd[a-rvvv] (vv){3,7}hv\dvv(?:aczui ss)\W\w$",
33 );
34}