我是 Rust 的新手,试图按照文档中的一些练习进行操作,出于好奇,想知道实现以下目标的“最佳”方法是什么:
给定一个正则表达式列表,我该如何:
- 知道它匹配哪个正则表达式
- 捕获组是什么,无需再次匹配正则表达式
我尝试的示例代码:
use regex::Regex;
let pattern1: Regex = Regex::new(r"^(add|Add) ([a-zA-Z]*) to ([a-zA-Z]*)")
let pattern2: Regex = Regex::new(r"^(list|List) all$")
let text = String::from("add employee to company");
match text {
if pattern1.is_match(&text) => do_something_with(<captured_group>),
if pattern2.is_match(&text) => do_something_else_with(),
_ => ()
}
我原本期望此代码能够do_something_with
以某种方式调用匹配的模式并能够提取employee
和company
。我也许可以captures
在函数中调用正则表达式,但我将解析正则表达式两次