我现在遇到正则表达式问题。 我想要做的是,对于每一行的迭代,它会检查这种类型的模式: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。这个效果不好。我不知道此时该怎么做。
非常感谢任何帮助。
答案 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
干杯