- nazwisko jednoczłonowe, złożone z polskich znaków, zaczynaj±ce się duż± liter±, np. Kowalski
- nazwisko dwuczłonowe, złożone z polskich znaków, np. Kowalska-Brzęczyszczykiewicz
- nazwisko dwuczłonowe, złożone ze znaków a-z w formie trzyliterowego "przedrostka" pisanego małymi literami oraz nazwiska wła¶ciwego zaczynaj±cego się duż± liter±, np. van Deurse. Napisałem takie oto wyrażenie regularne:
<?php preg_match( '/^(([A-ZŁŻ][a-z±ęóżĽćńł¶]{2,})(-[A-ZŁŻ][a-z±ęóżĽćńł¶]{2,})?)|([a-z]{3} [A-Z][a-z]{2,})$/u', $surname ); ?>
Problem, z którym się borykam polega na tym, że funkcja preg_match() sprawdza do pierwszego wyst±pienia i zwróci 1 w przypadku gdy co najmniej 3 pierwsze znaki pasuj±, więc nazwisko Kow123 zostanie uznane za poprawne.
Rozwi±zanie jest zapewne banalne, ale z powodu mojego małego do¶wiadczenia z wyrażeniami regularnymi lektura manuala nie naprowadziła mnie na nie. Czy kto¶ ma pomysł jakiej innej funkcji użyć lub jak zmodyfikować wyrażenie, abym uzyskał oczekiwany rezultat?