8个版本
0.2.5 | 2021年11月11日 |
---|---|
0.2.4 | 2019年5月31日 |
0.2.3 | 2018年12月28日 |
0.2.1 | 2018年8月30日 |
0.1.1 | 2018年8月29日 |
#796 在 文本处理
799 每月下载量
用于 8 个crate(6 个直接使用)
32KB
632 行
sedregex
一个简单的底层使用regex的sed-like库。
用法
基本上有两种公共接口供您使用
find_and_replace
,它对于一次性处理多个命令非常有用,- 以及当您需要多次运行相同命令时,使用
ReplaceCommand
。
示例
让我们直接进入示例!
use sedregex::{find_and_replace, ReplaceCommand};
fn main() {
// Both case-insensitive and global:
assert_eq!(
"Please stop wuts oh wut.",
ReplaceCommand::new("s/lol/wut/ig").unwrap().execute("Please stop Lols oh lol."),
);
// Multiple commands in one go:
assert_eq!(
"Please stop nos oh no.",
find_and_replace("Please stop Lols oh lol.", &["s/lol/wut/ig", "s/wut/no/g"]).unwrap()
);
// Same, but skipping the `s` character.
assert_eq!(
"Please stop wuts oh wut.",
find_and_replace("Please stop Lols oh lol.", &["/lol/wut/ig"]).unwrap()
);
// Skipping the flags.
assert_eq!(
"Please stop Lols oh wut.",
find_and_replace("Please stop Lols oh lol.", &["/lol/wut/"]).unwrap()
);
// Skipping the last slash.
assert_eq!(
"Please stop Lols oh wut.",
find_and_replace("Please stop Lols oh lol.", &["/lol/wut"]).unwrap()
);
// Escaping a slash in a replace part.
assert_eq!(
r"Please stop wut/s oh wut/.",
find_and_replace("Please stop Lols oh lol.", &[r"s/lol/wut\//gi"]).unwrap()
);
// Some regex stuff.
// Also note the lack of the trailing slash: it's opitonal!
assert_eq!(
"Second, First",
find_and_replace(
"First, Second",
&[r"s/(?P<first>[^,\s]+),\s+(?P<last>\S+)/$last, $first"],
).unwrap()
);
// Ok let's go with some simple regex stuff.
assert_eq!(
"Some weird typo",
find_and_replace("Some wierd typo", &[r"s/ie/ei/"]).unwrap()
);
}
许可证
许可证下之一
- Apache许可证2.0版本 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您自行选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,都将按照上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~2.2–3MB
~54K SLoC