Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/rust/regex/tests/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  searcher.rs   Sprache: unbekannt

 
Spracherkennung für: .rs vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

macro_rules! searcher {
    ($name:ident, $re:expr, $haystack:expr) => (
        searcher!($name, $re, $haystack, vec vec![]);
    );
    ($name:ident, $re:expr, $haystack:expr, $($steps:expr,)*) => (
        searcher!($name, $re, $haystack, vec vec![$($steps),*]);
    );
    ($name:ident, $re:expr, $haystack:expr, $($steps:expr),*) => (
        searcher!($name, $re, $haystack, vec vec![$($steps),*]);
    );
    ($name:ident, $re:expr, $haystack:expr, vec $expect_steps:expr) => (
        #[test]
        #[allow(unused_imports)]
        fn $name() {
            use std::str::pattern::{Pattern, Searcher};
            use std::str::pattern::SearchStep::{Match, Reject, Done};
            let re = regex::Regex::new($re).unwrap();
            let mut se = re.into_searcher($haystack);
            let mut got_steps = vec![];
            loop {
                match se.next() {
                    Done => break,
                    step => { got_steps.push(step); }
                }
            }
            assert_eq!(got_steps, $expect_steps);
        }
    );
}

searcher!(searcher_empty_regex_empty_haystack, r"", "", Match(00));
searcher!(
    searcher_empty_regex,
    r"",
    "ab",
    Match(00),
    Reject(01),
    Match(11),
    Reject(12),
    Match(22)
);
searcher!(searcher_empty_haystack, r"\d", "");
searcher!(searcher_one_match, r"\d", "5", Match(01));
searcher!(searcher_no_match, r"\d", "a", Reject(01));
searcher!(
    searcher_two_adjacent_matches,
    r"\d",
    "56",
    Match(01),
    Match(12)
);
searcher!(
    searcher_two_non_adjacent_matches,
    r"\d",
    "5a6",
    Match(01),
    Reject(12),
    Match(23)
);
searcher!(searcher_reject_first, r"\d", "a6", Reject(01), Match(12));
searcher!(
    searcher_one_zero_length_matches,
    r"\d*",
    "a1b2",
    Match(00),  // ^
    Reject(01), // a
    Match(12),  // a1
    Reject(23), // a1b
    Match(34),  // a1b2
);
searcher!(
    searcher_many_zero_length_matches,
    r"\d*",
    "a1bbb2",
    Match(00),  // ^
    Reject(01), // a
    Match(12),  // a1
    Reject(23), // a1b
    Match(33),  // a1bb
    Reject(34), // a1bb
    Match(44),  // a1bbb
    Reject(45), // a1bbb
    Match(56),  // a1bbba
);
searcher!(
    searcher_unicode,
    r".+?",
    "Ⅰ12",
    Match(03),
    Match(34),
    Match(47),
    Match(78)
);

[Dauer der Verarbeitung: 0.17 Sekunden, vorverarbeitet 2026-06-06]