pub fn regex2<'a>(input: &'a str, pattern: &'a str) -> (bool, Option<&'a str>)Expand description
在输入字符串中搜索匹配给定模式的行
§参数
input- 要搜索的输入字符串pattern- 搜索模式
§返回值
返回一个元组 (bool, Option<&str>),其中:
- 布尔值表示是否找到匹配
Option<&str>包含匹配的子字符串(如果找到)
§示例
let test_str = "test\nexe \"Number 123 321-\"\n更多测试2\n12";
let inputs = [
(test_str, "!ABC123", true, Some("test\nexe \"Number 123 321-\"\n更多测试2\n12\n1xxx Done W \"1a2\"\nNNNWD Done R TEST1")),
(test_str, "!Done R ", false, Some("NNNWD Done R TEST1")),
(test_str, "$ Done R TEST1", true, Some("NNNWD")),
(test_str, "Done W \"$\"", true, Some("1a2")),
(test_str, "Done R $", true, Some("TEST1")),
(test_str, "tes~", true, Some("tes")),
(test_str, "tes*", true, Some("test")),
(test_str, "*123*", true, Some("exe \"Number 123 321-\"")),
(test_str, "更多测试2", true, Some("更多测试2")),
(test_str, "*123~", true, Some("exe \"Number 123")),
(test_str, "~123*", true, Some("123 321-\"")),
(test_str, "123*", false, Some(test_str)),
(test_str, "123", false, Some(test_str)),
(test_str, "~123", false, Some(test_str)),
];
for (input, pattern, expected_match, expected_capture) in &inputs {
let result = regex2(input, pattern);
println!(
"Input: '{}', Pattern: '{}', Result: {:?}",
input, pattern, result
);
assert_eq!(result, (*expected_match, *expected_capture));
}