1 个不稳定版本
0.1.0 | 2019年6月10日 |
---|
#4 在 #automaat
25KB
277 行
Automaat 处理器:字符串正则表达式
🚧 工作中 🚧
lib.rs
:
一个用于使用正则表达式模式匹配和替换字符串的 Automaat 处理器。
此处理器允许您在 Automaat 工作流中匹配字符串,如果模式不匹配则显示错误,或使用替换字符串替换模式。
它在将前一个处理器的输出转换为更易于用户阅读的内容,在通过 PrintOutput
处理器打印到屏幕之前非常有用。
示例
根据正则表达式模式替换输入
此处理器的常见示例是在另一个处理器运行后使用它,该处理器提供了一些输出,需要在下一个处理器使用之前(或展示给用户)进行重写。
在这个例子中,我们得到一个字符串 Failure #233 - email does not exist
。我们希望将此输出重写为 error: email does not exist
。
use automaat_core::{Context, Processor};
use automaat_processor_string_regex::StringRegex;
let context = Context::new()?;
let processor = StringRegex {
input: "Failure #233 - email does not exist".to_owned(),
regex: r"\A[^-]+ - (.*)\z".to_owned(),
mismatch_error: None,
replace: Some("error: $1".to_owned())
};
let output = processor.run(&context)?;
assert_eq!(output, Some("error: email does not exist".to_owned()));
正则表达式不匹配时返回错误
另一个常见用例是匹配一些输入,如果模式不匹配则返回错误。
在这种情况下,我们希望字符串是有效的 UUIDv4 格式,如果它不匹配则返回一个易于用户理解的错误。
use automaat_core::{Context, Processor};
use automaat_processor_string_regex::StringRegex;
let context = Context::new()?;
let processor = StringRegex {
input: "This is not a valid UUID".to_owned(),
regex: r"\A([a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12})\z".to_owned(),
mismatch_error: Some("provided value is not in a valid UUIDv4 format".to_owned()),
replace: None
};
let error = processor.run(&context).unwrap_err();
assert_eq!(error.to_string(), "provided value is not in a valid UUIDv4 format".to_owned());
包功能
juniper
– 创建一组用于 GraphQL 请求/响应的对象。
依赖项
~4–15MB
~206K SLoC