ares/checkers/
regex_checker.rs1use lemmeknow::Identifier;
2
3use super::checker_type::{Check, Checker};
4use crate::{checkers::checker_result::CheckResult, config::get_config};
5use log::trace;
6use regex::Regex;
7
8pub struct RegexChecker;
11
12impl Check for Checker<RegexChecker> {
13 fn new() -> Self {
14 Checker {
15 name: "Regex Checker",
16 description: "Uses Regex to check for regex matches, useful for finding cribs.",
17 link: "https://github.com/rust-lang/regex",
18 tags: vec!["crib", "regex"],
19 expected_runtime: 0.01,
20 popularity: 1.0,
21 lemmeknow_config: Identifier::default(),
22 _phantom: std::marker::PhantomData,
23 }
24 }
25
26 fn check(&self, text: &str) -> CheckResult {
27 trace!("Checking {} with regex", text);
28 let config = get_config();
30 let regex_to_parse = config.regex.clone();
31 let re = Regex::new(®ex_to_parse.unwrap()).unwrap();
32
33 let regex_check_result = re.is_match(text);
34 let mut plaintext_found = false;
35 let printed_name = format!("Regex matched: {}", re);
36 if regex_check_result {
37 plaintext_found = true;
38 }
39
40 CheckResult {
41 is_identified: plaintext_found,
42 text: text.to_string(),
43 checker_name: self.name,
44 checker_description: self.description,
45 description: printed_name,
46 link: self.link,
47 }
48 }
49}