String Rust中不区分大小写的字符串匹配

String Rust中不区分大小写的字符串匹配,string,rust,String,Rust,是否有一种简单的方法可以不敏感地使用大小写 始终可以将两个管柱转换为相同的套管。这将适用于某些情况: let needle=“μτς”; 让haystack=“Μ∑”; 设针=针。to_小写(); 让haystack=haystack.to_小写(); 为我在干草堆。火柴和针){ println!(“{:?}”,i); } 另请参见仅限ASCII的变体 在其他情况下,regex板条箱(可能)为您提供: 使用regex::RegexBuilder;//1.4.3 fn main(){ 让针=“μ

是否有一种简单的方法可以不敏感地使用大小写

始终可以将两个管柱转换为相同的套管。这将适用于某些情况:

let needle=“μτς”;
让haystack=“Μ∑”;
设针=针。to_小写();
让haystack=haystack.to_小写();
为我在干草堆。火柴和针){
println!(“{:?}”,i);
}
另请参见仅限ASCII的变体

在其他情况下,regex板条箱(可能)为您提供:

使用regex::RegexBuilder;//1.4.3
fn main(){
让针=“μτς”;
让haystack=“Μ∑”;
让指针=RegexBuilder::新建(指针)
.不区分大小写(true)
.build()
.expect(“无效正则表达式”);
为我在针。找到(干草堆){
println!(“{:?}”,i);
}
}
但是,请记住,Rust的字符串是UTF-8。是的,你需要处理所有的UTF-8。这意味着选择大写或小写可能会改变结果。同样,更改文本大小写的唯一正确方法;这不是字节的固有属性。是的,你可以有包含表情符号和其他令人兴奋的东西的字符串

另见:

如果正在使用,可以使模式不区分大小写:

let re = Regex::new(r"(?i)μτς").unwrap();
let mat = re.find("ΜΤΣ").unwrap();

如果要获取字符串的出现次数,请先使用
fn to_lowercase(&self)->String将两个字符串转换为小写-
匹配(…)。count()
如果只想与ASCII字符串进行不区分大小写的字符串比较,请使用。我知道不是这样的意思,而是这样的语句“除了基本的多语言层面之外,还有其他令人兴奋的事情“真的有点像洛夫克拉夫特式的含义。就像弦一样,就像古老的神一样,超出了人类的理解,深入研究它们的真正理解会让你发疯。在铁锈书向我介绍了石墨烯簇的概念之后。。。我有点同意!问题是关于字符串的,所以函数可能很有用:
RegexBuilder::new(regex::escape(needle))