quickjs_regex/
lib.rs

1pub use quickjs_regex_backend::*;
2pub use quickjs_regex_derive::*;
3
4#[test]
5fn test_regex() {
6    let reg = "(Α)123456".repeat(1);
7    let text = "α123456".repeat(1000);
8    let regex = Regex::compile(&reg, IGNORECASE).unwrap();
9    let result = regex.try_match(&text).unwrap();
10    assert!(result.len() == 2);
11
12    let reg = "/(\0)123456".repeat(1);
13    let text = "/\0123456".repeat(1000);
14    let regex = Regex::compile(&reg, IGNORECASE).unwrap();
15    let result = regex.try_match(&text).unwrap();
16    assert!(result.len() == 2);
17
18    let reg = "(\u{1})(2)(3)456".repeat(1);
19    let text = "\u{1}23\u{1}23456\u{1}23";
20    let regex = Regex::compile(&reg, IGNORECASE | UNICODE).unwrap();
21    let result = regex
22        .try_replace(&text, |m| format!("x{}{}{}", m[1], m[2], m[3]))
23        .unwrap();
24    assert!(result == "\u{1}23x\u{1}23\u{1}23");
25    let regex = Regex::compile("(\\d)", UNICODE).unwrap();
26    let result = regex
27        .try_replacen("12345", |m| format!("x{}", m[1]), 2)
28        .unwrap();
29    assert!(result == "x1x2345");
30    let result = regex
31        .try_replace_all("12345", |m| format!("x{}", m[1]))
32        .unwrap();
33    assert!(result == "x1x2x3x4x5");
34    let result = regex.try_match_all("12345").unwrap();
35    assert!(result == [["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"]]);
36}