10 个版本

0.2.5 2024年3月21日
0.2.4 2024年3月20日
0.1.5 2024年3月20日

681文本处理

Download history 93/week @ 2024-04-02 71/week @ 2024-07-02 18/week @ 2024-07-09

89 每月下载量

MIT/Apache

8KB
103

关于

EasyRandom 是一个库,可以帮助生成符合特定模式的随机模式

假设我们想要生成模式为 "aaaa bbbnnn ccccc" 的随机字符串,其中

  • a -> 小写英文字母
  • b -> 大写英文字母
  • c -> 大小写英文字母
  • n -> 从 0 到 9 的数字
  • s -> 你可以添加的自定义字符
  • ' ' -> 空格
  • '_' -> 下划线
let mut sp_gen = EasyRandom::new();
let output=sp_gen.generate(String::from("aaaa bbbnnn ccccc"));

// We get the following random generated String
// poxy BOG737 ovKwQ

如果我们输入除 a、b、c、n 之外的任何字符串,我们得到的输出将是这个字符串

let  mut  sp_gen  =  EasyRandom::new();
let  output=sp_gen.generate(String::from("aaD")); // here 'D' is invalid
    
// We get this string 
// Please use the characters a(lowercase),b(uppercase),c(upper+lower cases),n(numbers) only to generate random strings

如果我们想排除任何字符,可以通过传递字符数组或向量来实现

let mut sp_gen = EasyRandom::new();
sp_gen.exclude_chars(&['a','i','e','o','u']); //removing all the vowels from the generator
for i in 0..10{
    let  output=sp_gen.generate(String::from("aaaaa aaa__aa")); 
    println!("{}",output);
}
/*
tfzvy rfb__rq
bvnvt cfq__xl
tyhkq bwt__cd
twttm krw__th
wqwfc zqd__nq
srjcj wys__mg
qfktg bvs__gs
xkqgf smb__rl
xpgwv dcq__zd
kclkc ggf__vx
*/
//

我们也可以排除数字

let mut sp_gen = EasyRandom::new();
sp_gen.exclude_chars(&['3','1','4','9','2']); //removing all the vowels from the generator
for i in 0..10{
    let  output=sp_gen.generate(String::from("aaaaannnn")); 
    println!("{}",output);
}
/*
rjicw0005
xjgak6067
ihxfw8705
ptlxt8085
pvdcx8788
pkmga6707
xakoy6080
amxyl8608
bkbaz6700
uuluz5785
*/

用法

您可以从终端添加它

cargo add easy_random 

您也可以将其添加到 TOML 文件中

[dependencies]
easy_random = "0.2.5"

以下是完整的示例代码

use easy_random::EasyRandom;

fn  main(){
    let mut sp_gen = EasyRandom::new();
    // _ and ' ' are passed as it is from pattern
    let output1 = sp_gen.generate(String::from("aa bbb cc__c nnnn"));
    // ks HCP GB__q 6751

    // You can pass a &[char] to exclude characters like vowels
    sp_gen.exclude_chars(&['a','e','i','o','u']); 
    // -----------------------OR-------------------------------
    //  sp_gen.exclude_chars_from_vec(vec!['a','e','i','o','u']);
    let output2 = sp_gen.generate(String::from("aaaaabbbb")); 
    // rynzfVVSG

    // You can use s in the pattern to add you own custom chars
    sp_gen.add_custom_chars_from_vec(vec!['', '', '', '', '', '', '', '', '']);
    // ------------------- OR ---------------------------------
    // sp_gen.add_custom_chars(&['♠', '♣', '♥', '♦', '←', '↑', '→', '↓', '↔']);
    
    let output3 = sp_gen.generate(String::from("aaaa s aaaa"));
    // wtjw ♠ slxf

    // Lets generate a mixed string 
    let output4 = sp_gen.generate(String::from("aa nss___bc"));
}

待办事项

  • 函数排除某些字符
  • 添加特殊字符

依赖关系

~315KB