Mam zmienną łańcuchową i chcę uzyskać pierwszą literę każdego słowa. Chcę, aby końcowy wynik był tablicą pierwszych liter.Jak uzyskać pierwszą literę każdego słowa za pomocą regex w PHP
$language = 'Sample Language';
preg_match('/(\b[a-z])+/i', $language, $match);
print_r($match);
Otrzymuję tylko pierwszą literę pierwszego słowa. Powyższy drukuje Array ([0] => S [1] => I)
Jeśli zmienić go
preg_match('/(\bL)+/i', $language, $match);
można uzyskać dopasowanie do L drugiego słowa. Więc oczywiście po pierwszym meczu przestaje szukać odpoczynku. Nie jestem zbyt dobry w wyrażeniach regularnych. Czy ktoś może wskazać, co zrobiłem źle?
słowa w łańcuchu wejściowym nie zawsze są oddzielone spacją. Jest dość nieprzewidywalny. Niektóre formaty mam natknąć: „MainLanguage: Język” „MainLanguage, Język” „MainLanguage: Język podjęzykiem” tu chcę dostać M, L i S
I Have edytowane moją odpowiedź na pokrycie wszystkich swoich żądań. –
Jeśli używasz php, dlaczego nie używać wbudowanej funkcji podobnej do substr? Lub dostęp do każdej litery słowa jako pierwszego elementu tablicy ($ word [0])? Ta próbka obsługuje również różne separatory słów: http://phpfiddle.org/main/code/hnu-qz3 – Andrew