如何在 Rust 中检查字符串是否仅包含一组特定字符?

25

在Rust中,检查字符串是否只包含某个字符集的惯用方法是什么?

2个回答

37

你可以使用all来检查所有字符是否都是字母数字。

fn main() {
    let name = String::from("Böb");
    println!("{}", name.chars().all(char::is_alphanumeric));
}
  • chars返回一个字符的迭代器。
  • all如果该函数对于迭代器的所有元素都返回true,则返回true。
  • is_alphanumeric检查它是否为字母数字字符。

对于任意字符集,你可以传递任何你喜欢的函数或代码块给all

有趣的是,由于微妙的Unicode原因,str上相应的方法被明确删除了。


8

有一个is_alphanumeric()函数:

fn main() {
    println!("{}", "abcd".chars().all(|x| x.is_alphanumeric()));
}

8
在这种情况下,s.chars().all(char::is_alphanumeric) 也可以使用。 - Shepmaster
1
为了更清晰,"通用"版本是改变all中的谓词。 - Shepmaster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接