0
$name = 'billy, jole';
if (preg_match('/^[a-zA-Z,]+ ([a-zA-Z]+)/',$name ,$yes)){
          print preg_replace('/(^[a-zA-Z,]+), ([a-zA-Z])+/','<a href="mailto:$1@ccsf.edu"></a>', $name);
}

出力は次のとおりです。

<a href="mailto:billy@ccsf.edu"></a>

ただし、名前を jbilly に短縮する必要があるため、出力は次のようになります。

<a href="mailto:jbilly@ccsf.edu"></a>

誰か助けてくれませんか?正規表現は初めてですか?

4

2 に答える 2

0

正規表現で解決しようとした問題がありました。今、私には2つの問題があります。

形式を扱っている場合lastname, firstname、正規表現は のような名前の場合に壊れますvan O'Toole, Sëamus。本当にひどい正規表現を書くこともできますし、コンマで分割して空白を削除することもできます。

$name = "van O'Toole, Sëamus"

list($lname, $fname) = array_map('trim', explode(',', $name));

次に、電子メール アドレスを作成します。

// convert to lowercase, strip special chars.
$fname = preg_replace('/[^\w]/', strtolower($fname));
$fname = preg_replace('/[^\w]/', strtolower($lname));

$email = sprintf("%s%s@domain.com", substr($fname,0,1), $lname);

//result: svanotoole@domain.com
于 2013-11-07T21:49:35.740 に答える