2个版本 (1个稳定版)
1.0.0 | 2019年2月23日 |
---|---|
0.1.0 | 2019年2月17日 |
#2470 在 算法
11KB
181 行
kmpsearch
允许在字节切片或字符串中搜索字节或字符串,使用Knuth Morris Pratt算法。KMP运行时间为O(n+h),其中n是针的长度,h是稻草堆的长度。
特别感谢PJB3005对AsRef的帮助,这使得这个库更易于使用。这是我第一个Rust crate,所以任何反馈都欢迎。GitHub接受pull请求。
用法
在字符串中匹配字符串
if "Hello World!".contains_needle("World") {
println!("Matches!");
} else {
println!("Doesn't match!");
}
在字节中匹配字节
if b"DEADBEEF".contains_needle(b"BEEF") {
println!("Matches!");
} else {
println!("Doesn't match!");
}
获取一个字符串在另一个字符串中的所有索引
let res = "That fox is a cool fox, he knows magic".indexesof_needle("fox");
assert_eq!(res.unwrap(), vec![5, 19]);