2
preg_matchのパターンとして使用されている正規表現を修正して、両方のタイプの文字列、姓と姓、姓を持たない文字列を考慮する必要があります。preg_matchを使用する場合、2つの異なるタイプの文字列を考慮する方法は?
$string = "Tim Johnson (M) - 12/19/2001 (14 years)";
$re = '~^(?<fname>[\p{L}-]+)\h+(?<lname>[\p{L}\h-]+?)\h+\((?<gender>[MF])\)[-\h]+(?<dob>[\d/]+)~mu';
preg_match($re, $string, $matches);
はの配列を返します:
array(
'fname' => 'Tim',
'lname' => 'Johnson',
'gender' => 'M',
'dob' => '12/29/2001',
)
をしかし、文字列は(姓を逃す)の場合:
array(
'fname' => '',
'lname' => '',
'gender' => 'M',
'dob' => '',
)
:
$string = "Tim (M) - 12/19/2001 (14 years)";
それはの配列を返します