在Rust的匹配表达式中如何匹配多个字符?

6

我想将单个字符与一系列字符(不止一个)进行匹配。目前,我正在尝试使用..运算符的方法。

match input_token {
    'Z'..'a' => { // I want to match any character from 'a' -> 'z' and 'A' -> 'Z' inclusive
        ... run some code
    }
}

在 Rust 的 match 表达式/语句的单个分支中,是否可以匹配多个值?


对于多个值的匹配,请参见此处。如果您的用例非常复杂,还可以考虑使用正则表达式。 - L. Riemer
2个回答

13

包含范围的模式为 begin..=end,您可以使用 | 组合模式,因此您想要

match input_token {
    'A'..='Z' | 'a'..='z' => {
        ... run some code
    }
}

3

另一种选择是使用 if 模式来处理更复杂的情况:

match input_token {
    token if token.is_ascii_alphabetic() {
        // ... 
    }
    // ...
}

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