I return the first and last name of a person given the full name, şimdiye kadar düşünebildiğim en iyi aşağıdaki normal ifade için en iyi güvenilir yol arıyorum:
$name = preg_replace('~\b(\p{L}+)\b.+\b(\p{L}+)\b~i', '$1 $2', $name);
Beklenen çıkışı böyle bir şey olmalı:
William -> William // Regex Fails
William Henry -> William Henry
William Henry Gates -> William Gates
Ben de support accents, örneğin "João" bunu istiyorum.
EDIT: I understand that some isimleri doğru tespit olmayacaktır, ama bu son söz soyadı (bütün soyadı olmayabilir nerede bir yerel sitede kullanılan olacak çünkü bu, benim için bir sorun değil Ben istediğim "Sevgili FIRST_NAME LAST_NAME" tamamen geçerli, benim için işe yaramaz ise, Peki tüm bu tartışma ... strong> söylemek için hızlı bir yoldur çünkü gerçi) ama bu bir sorun değildir.
Birisi bu konuda bana yardımcı olabilir?