创建条件以验证电子邮件地址

时间:2014-04-22 04:22:06

标签: regex bash cat

我使用了基于preg_match的' regex'在我使用的PHP脚本中。正则表达式是^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$

如何在bash条件下将其合并以测试基本结构的电子邮件地址?我的电子邮件地址位于一个名为“电子邮件”的文件中。 (根据需要循环)。像if [cat email | '/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/' ]; then {一样 管他呢。我不知道怎么写这个。谁能帮忙......

1 个答案:

答案 0 :(得分:1)

使用正则表达式并将其调整为bash以测试变量email中保存的地址:

#!/bin/bash
if [[ $email =~ ^[[:alnum:]_.-]+@[[:alnum:]_.-]+\.[[:alpha:]]{2,6}$ ]]
then
    echo "Good address"
else
    echo "Bad address"
fi

注意:

  • 这使用[[...]]构造,因此普通的POSIX shell不会:bash或更好。

  • =~运算符将字符串(在本例中为电子邮件地址)与POSIX扩展正则表达式匹配。

  • 电子邮件地址的实际规范(查看RFC5322)非常复杂(请参阅此示例但已过时regex),并且您的正则表达式只是近似值。