#自动化 #处理器 #automaat #字符串 #正则表达式 #模式匹配 #替换

automaat-processor-string-regex

Automaat 自动化工具的字符串正则表达式处理器

1 个不稳定版本

0.1.0 2019年6月10日

#4#automaat


用于 automaat-server

MIT/Apache 许可

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