📜  rust 使用正则表达式检查有效的电子邮件地址 - Rust (1)

📅  最后修改于: 2023-12-03 15:04:57.865000             🧑  作者: Mango

Rust 使用正则表达式检查有效的电子邮件地址

本文将介绍如何使用 Rust 编程语言和正则表达式(正则表达式是一种用于匹配文本模式的强大工具)来检查有效的电子邮件地址。

编写正则表达式

在 Rust 中,可以通过 regex 包来编写正则表达式。我们需要编写一个能够匹配电子邮件地址的正则表达式。电子邮件地址的一般格式如下:

username@domain.tld

其中,username 由字母、数字、点、加号和下划线组成,domain 是域名,tld 是顶级域名。由于顶级域名有很多,所以我们只选择其中几个常用的顶级域名进行匹配。

以下是一个匹配电子邮件地址的正则表达式:

let re = Regex::new(r"^[a-zA-Z0-9._+%-]+@[a-zA-Z0-9.-]+\.(com|edu|org|net)$").unwrap();

这个正则表达式匹配了名字为 username 的一段字符串,其后紧接着一个 @ 符号,然后是一段域名字符串 domain,最后是一个点和顶级域名 tld。其中,[a-zA-Z0-9._+%-]+ 匹配了用户名,[a-zA-Z0-9.-]+ 匹配了域名,(com|edu|org|net) 匹配了常见的几个顶级域名。^$ 分别表示字符串的开始和结束。

使用正则表达式

现在我们编写了一个能够匹配电子邮件地址的正则表达式。接下来,我们可以使用这个正则表达式来检查一个字符串是否为有效的电子邮件地址。

use regex::Regex;

fn is_valid_email(email: &str) -> bool {
    let re = Regex::new(r"^[a-zA-Z0-9._+%-]+@[a-zA-Z0-9.-]+\.(com|edu|org|net)$").unwrap();
    re.is_match(email)
}

fn main() {
    let email1 = "abc@example.com";
    let email2 = "abc123@example.com";
    let email3 = "abc.123@example.com";
    let email4 = "abc+123@example.com";
    let email5 = "abc_123@example.com";
    let email6 = "abc@example.net";
    let email7 = "abc@example.org";
    let email8 = "abc@example.edu";
    let email9 = "abc@example.xyz";
    assert!(is_valid_email(email1));
    assert!(is_valid_email(email2));
    assert!(is_valid_email(email3));
    assert!(is_valid_email(email4));
    assert!(is_valid_email(email5));
    assert!(is_valid_email(email6));
    assert!(is_valid_email(email7));
    assert!(is_valid_email(email8) == false);
    assert!(is_valid_email(email9) == false);
}

is_valid_email 函数用来检查一个字符串是否为有效的电子邮件地址。我们将编写的正则表达式传递给 Regex::new 函数来创建一个正则表达式对象 re。然后使用 re.is_match 方法来检查 email 是否匹配正则表达式。

main 函数中我们编写了一些测试用例,其中 email1email8 是有效的电子邮件地址,email9 不是有效的地址。我们使用 assert 宏来检查 is_valid_email 函数是否返回了正确的结果。

总结

在本文中,我们介绍了如何使用 Rust 编程语言和正则表达式来检查有效的电子邮件地址。我们编写了一个能够匹配电子邮件地址的正则表达式,并编写了一个函数来检查一个字符串是否为有效的电子邮件地址。