带名称和电子邮件的正则表达式

时间:2012-10-30 04:44:00

标签: php regex if-statement

我现在遇到正则表达式问题。 我想要做的是,对于每一行的迭代,它会检查这种类型的模式:Lastname,Firstname 如果找到了名称,那么它将采用名字的第一个字母和姓氏的前六个字母,并将其形成为电子邮件。

我有以下内容:

$checklast = "[A-z],";
$checkfirst = "[A-z]";
if (ereg($checklast, $parts[1])||ereg($checkfirst, $parts[2])){ 
    $first = preg_replace($checkfirst, $checkfirst{1,1}, $parts[2]);
    print "<a href='mailto:$first.$last@email.com;'> $parts[$i] </a>"; 
}

这显然打破了代码。但是我最初只是试图找到名字的第一个字母,然后是名字后面的前六个字母,然后是@ email.com。这个效果不好。我不知道此时该怎么做。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

这样的事情怎么样:

$name = 'Smith, John';
$email = preg_replace('/([a-z]{1,6})[a-z]*?,[\\s]([a-z])[a-z]*/i', 
                      '\\2.\\1@email.com', $name);

echo $email; // J.Smith@email.com

干杯