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文本处理

Download history 1129/week @ 2024-03-14 929/week @ 2024-03-21 820/week @ 2024-03-28 894/week @ 2024-04-04 591/week @ 2024-04-11 601/week @ 2024-04-18 599/week @ 2024-04-25 665/week @ 2024-05-02 743/week @ 2024-05-09 430/week @ 2024-05-16 236/week @ 2024-05-23 207/week @ 2024-05-30 184/week @ 2024-06-06 228/week @ 2024-06-13 213/week @ 2024-06-20 134/week @ 2024-06-27

799 每月下载量
用于 8 个crate(6 个直接使用)

MIT/Apache

32KB
632

sedregex

pipeline status crates.io docs.rs

[发布文档]

[主文档]

一个简单的底层使用regex的sed-like库。

用法

基本上有两种公共接口供您使用

示例

让我们直接进入示例!

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许可证定义的,您有意提交的任何贡献,都将按照上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~2.2–3MB
~54K SLoC