2 个版本
0.1.1 | 2022 年 12 月 19 日 |
---|---|
0.1.0 | 2022 年 12 月 19 日 |
1097 在 文本处理 中
每月 30 次下载
用于 swc-react-remove-properti…
12KB
201 行
matchable
matchable
提供了一个方便的枚举,用于检查文本片段是否与字符串或正则表达式匹配。
此 crate 的常见用法是作为启用 serde
功能的配置值类型(默认禁用),然后用户可以仅通过一个枚举传递字符串和/或正则表达式。之后,您可以使用该枚举检查文本片段是否与字符串/正则表达式匹配或不匹配。
示例
use matchable::Matchable;
assert!(Matchable::Str("Abc".into()).is_match("Abc"));
assert!(!Matchable::Str("Abc".into()).is_match("abc"));
assert!(Matchable::Regex(regex::Regex::new("abc.").unwrap()).is_match("abcd"));
许可证
MIT 许可证
版权所有 © 2022 年至现在 Pig Fang
lib.rs
:
matchable
提供了一个方便的枚举,用于检查文本片段是否与字符串或正则表达式匹配。
use matchable::Matchable;
assert!(Matchable::Str("Abc".into()).is_match("Abc"));
assert!(!Matchable::Str("Abc".into()).is_match("abc"));
assert!(Matchable::Regex(regex::Regex::new("abc.").unwrap()).is_match("abcd"));
有关使用方法的详细信息,请参阅 Matchable
的文档。
反序列化
使用此 crate 的一个优点是将数据反序列化为 Matchable
。这通常用作配置,并允许用户将字符串或正则表达式作为模式传递。
这里我们使用 JSON 作为示例
如果字符串用斜杠(/
)包围,带有或没有可选的标志后缀,则将反序列化为正则表达式
use matchable::Matchable;
let re_digits = serde_json::from_str::<Matchable>(r#""/\\d+/""#).unwrap();
assert!(re_digits.is_match("123"));
// with regex flags
let re_word = serde_json::from_str::<Matchable>(r#""/matchable/i""#).unwrap();
assert!(re_word.is_match("Matchable"));
否则,它将按原样解析为正常字符串。
use matchable::Matchable;
let re1 = serde_json::from_str::<Matchable>(r#""/ab""#).unwrap();
assert!(re1.is_match("/ab"));
assert!(!re1.is_match("ab"));
let re2 = serde_json::from_str::<Matchable>(r#""ab/i""#).unwrap();
assert!(re2.is_match("ab/i"));
assert!(!re2.is_match("AB"));
依赖关系
~2–3.5MB
~56K SLoC