blob: 85586b8c64586fbb6dfca40d35e79069ae435f8b [file] [log] [blame] [edit]
use onig::*;
fn exec(syntax: &Syntax, pattern: &str, to_search: &str) {
let reg = Regex::with_options(pattern, RegexOptions::REGEX_OPTION_NONE, syntax).unwrap();
match reg.captures(to_search) {
Some(caps) => {
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),
}
}
}
None => println!("search fail"),
}
}
fn main() {
exec(
Syntax::perl(),
r"\p{XDigit}\P{XDigit}\p{^XDigit}\P{^XDigit}\p{XDigit}",
"bgh3a",
);
exec(Syntax::java(), r"\p{XDigit}\P{XDigit}[a-c&&b-g]", "bgc");
exec(
Syntax::asis(),
r"abc def* e+ g?ddd[a-rvvv] (vv){3,7}hv\dvv(?:aczui ss)\W\w$",
r"abc def* e+ g?ddd[a-rvvv] (vv){3,7}hv\dvv(?:aczui ss)\W\w$",
);
}