#sensitive #filter #trie #generate #replace-verification

sensitive-rs

Sensitive word search, verification, filtering and replacement

7 releases

0.2.2 Nov 28, 2024
0.2.1 Sep 12, 2024
0.1.3 Sep 11, 2024
0.1.0 Aug 16, 2024

#514 in Encoding

Download history 7/week @ 2024-08-19 343/week @ 2024-09-09 69/week @ 2024-09-16 1/week @ 2024-09-23 41/week @ 2024-09-30 130/week @ 2024-11-25 20/week @ 2024-12-02

150 downloads per month

MIT/Apache

335KB
468 lines

Sensitive-rs

English 中文

Build crates.io docs.rs License Crates.io

Sensitive-rs is a Rust library for finding, validating, filtering, and replacing sensitive words. It provides efficient algorithms to handle sensitive words, suitable for various application scenarios.

Features

  • Find: Locate all sensitive words in a text.
  • Validate: Check if a text contains any sensitive words.
  • Filter: Remove sensitive words from a text.
  • Replace: Replace sensitive words in a text with specified characters.

Installation

Add the following dependency to your Cargo.toml:

[dependencies]
sensitive-rs = "0.1"

Usage Examples

Here are some examples of how to use Sensitive-rs:

Here is an example of how to use the Filter struct

use sensitive_rs::Filter;

fn main() {
    // Create a new Filter
    let mut filter = Filter::new();
    filter.add_word("bad");
    filter.add_word("worse");

    // Find sensitive words
    let result = filter.find_in("This is bad.");
    assert_eq!(result, (true, "bad".to_string()));

    // Validate text
    let result = filter.validate("This is worse.");
    assert_eq!(result, (true, "worse".to_string()));

    // Filter sensitive words
    let filtered_text = filter.filter("This is bad and worse.");
    assert_eq!(filtered_text, "This is  and .");

    // Replace sensitive words
    let replaced_text = filter.replace("This is bad and worse.", '*');
    assert_eq!(replaced_text, "This is *** and *****.");
}

Here is an example of how to use the Trie struct

use sensitive_rs::Trie;

fn main() {
    // Create a new Trie filter
    let filter = Trie::new();
    filter.add_word("bad");
    filter.add_word("worse");

    // Find sensitive words
    let result = filter.find_in("This is bad.");
    assert_eq!(result, Some("bad".to_string()));

    // Validate text
    let result = filter.validate("This is worse.");
    assert_eq!(result, Some("worse".to_string()));

    // Filter sensitive words
    let filtered_text = filter.filter("This is bad and worse.");
    assert_eq!(filtered_text, "This is  and .");

    // Replace sensitive words
    let replaced_text = filter.replace("This is bad and worse.", '*');
    assert_eq!(replaced_text, "This is *** and *****.");
}

Documentation

For detailed documentation, please refer to Documentation.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 or MIT license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2–14MB
~156K SLoC