1个不稳定版本
0.1.0 | 2020年11月6日 |
---|
#25 in #算法
18KB
354 行
shtring
通过空白字符将输入字符串分割成参数,使得匹配引号之间的文本合并成一个参数。此外,还支持单字符转义,并在适用情况下忽略。
let input = "Hello world! \"This text will be a single argument.\" 'So \"will\" this.' \\\'Escaped quotes are ignored.\\\'";
let output = shtring::split(input)?;
assert_eq!(output, vec![
"Hello",
"world!",
"This text will be a single argument.",
"So \"will\" this.",
"\\\'Escaped",
"quotes",
"are",
"ignored.\\\'",
]);
lib.rs
:
通过空白字符将输入字符串分割成参数,使得匹配引号之间的文本合并成一个参数。此外,还支持单字符转义,并在适用情况下忽略。
let input =
"Hello world! \"This text will be a single argument.\" 'So \"will\" this.' \\'Escaped quotes are ignored.\\'";
let output = split(input)?;
assert_eq!(
output,
vec![
"Hello",
"world!",
"This text will be a single argument.",
"So \"will\" this.",
"\\'Escaped",
"quotes",
"are",
"ignored.\\'",
]
);
提供了便捷函数split,可以将输入字符串轻松转换为解析后的参数的向量(Vec),如果解析器遇到错误,则解析中断并返回该错误。在其他情况下,可以手动创建Parser并遍历解析后的参数。
依赖项
~305–770KB
~18K SLoC