1 个不稳定版本
0.1.0 | 2023年10月4日 |
---|
#2321 in 数据结构
7KB
61 行
基于 regex::RegexSet
数据结构的键为正则表达式的关联容器。
示例用法
use regex_map::RegexMap;
let map = RegexMap::new([
("foo", 1),
("bar", 2),
("foobar", 3),
("^foo$", 4),
("^bar$", 5),
("^foobar$", 6),
]);
assert_eq!(map.get("foo").cloned().collect::<Vec<_>>(), vec![1, 4]);
assert_eq!(map.get("bar").cloned().collect::<Vec<_>>(), vec![2, 5], );
assert_eq!(map.get("foobar").cloned().collect::<Vec<_>>(), vec![1, 2, 3, 6]);
assert_eq!(map.get("XXX foo XXX").cloned().collect::<Vec<_>>(), vec![1]);
assert_eq!(map.get("XXX bar XXX").cloned().collect::<Vec<_>>(), vec![2]);
for value in map.get("foo") {
println!("Foo match: {}", value);
}
待办事项
- 考虑添加
get_with_match
,它将返回值和各个正则表达式的匹配的迭代器。
依赖关系
~2–3MB
~53K SLoC