0

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

我有以下内容:

$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,但效果不太好。我不确定此时该怎么做。

任何帮助深表感谢。

4

1 回答 1

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

干杯

于 2012-10-30T04:57:47.070 回答