mirror of
https://gitee.com/openharmony/third_party_rust_regex
synced 2025-04-12 15:43:16 +00:00

This commit sets up the infrastructure for supporting various `unicode` and `perf` features, which permit decreasing binary size, compile times and the size of the dependency tree. Most of the work here is in modifying the regex tests to make them work in concert with the available Unicode features. In cases where Unicode is irrelevant, we just turn it off. In other cases, we require the Unicode features to run the tests. This also introduces a new error in the compiler where by if a Unicode word boundary is used, but the `unicode-perl` feature is disabled, then the regex will fail to compile. (Because the necessary data to match Unicode word boundaries isn't available.)
32 lines
895 B
Rust
32 lines
895 B
Rust
mat!(match_flag_case, "(?-u)(?i)abc", "ABC", Some((0, 3)));
|
|
mat!(match_flag_weird_case, "(?-u)(?i)a(?-i)bc", "Abc", Some((0, 3)));
|
|
mat!(match_flag_weird_case_not, "(?-u)(?i)a(?-i)bc", "ABC", None);
|
|
mat!(match_flag_case_dotnl, "(?-u)(?is)a(?u:.)", "A\n", Some((0, 2)));
|
|
mat!(
|
|
match_flag_case_dotnl_toggle,
|
|
"(?-u)(?is)a(?u:.)(?-is)a(?u:.)",
|
|
"A\nab",
|
|
Some((0, 4))
|
|
);
|
|
mat!(
|
|
match_flag_case_dotnl_toggle_not,
|
|
"(?-u)(?is)a(?u:.)(?-is)a(?u:.)",
|
|
"A\na\n",
|
|
None
|
|
);
|
|
mat!(
|
|
match_flag_case_dotnl_toggle_ok,
|
|
"(?-u)(?is)a(?u:.)(?-is:a(?u:.))?",
|
|
"A\na\n",
|
|
Some((0, 2))
|
|
);
|
|
mat!(
|
|
match_flag_multi,
|
|
r"(?-u)(?m)(?:^\d+$\n?)+",
|
|
"123\n456\n789",
|
|
Some((0, 11))
|
|
);
|
|
mat!(match_flag_ungreedy, "(?U)a+", "aa", Some((0, 1)));
|
|
mat!(match_flag_ungreedy_greedy, "(?U)a+?", "aa", Some((0, 2)));
|
|
mat!(match_flag_ungreedy_noop, "(?U)(?-U)a+", "aa", Some((0, 2)));
|