Wie man den ersten Buchstaben von jedem Wort, mit regex in PHP

Habe ich eine string-variable und ich möchte den ersten Buchstaben von jedem Wort.
Ich will das Ergebnis ein array von ersten Buchstaben.

$language = 'Sample Language';
preg_match('/(\b[a-z])+/i', $language, $match);
print_r($match);

Was bin ich immer nur der erste Buchstabe des ersten Wortes.
Die oben genannten Drucke Array([0]=>S [1]=>S)

Wenn ich es ändern zu

preg_match('/(\bL)+/i', $language, $match);

Kann ich eine übereinstimmung mit dem L, das zweite Wort. So offensichtlich nach dem ersten match, es hört auf zu suchen, für den rest. Ich bin nicht sehr gut mit regulären Ausdrücken. Kann mir jemand erklären, was ich falsch gemacht haben?

Wörter im input-string sind nicht immer durch ein Leerzeichen getrennt. Es ist ziemlich unberechenbar. Einige Formate sind mir begegnet:
"MainLanguage: Sprache"
"MainLanguage, Sprache"
"MainLanguage: Sprache, Subsprache" hier, ich will zu bekommen, M, L und S

  • Ich bearbeitet meine Antwort auf alle Ihre Anfragen.
  • Wenn Sie mit php, warum nicht verwenden Sie built-in Funktion wie substr ? Oder den Zugriff auf die einzelnen word-Brief als array das erste element ($Wort[0]) ? Dieses Beispiel behandelt auch verschiedene Wort-Trennzeichen: phpfiddle.org/main/code/hnu-qz3
InformationsquelleAutor kurry | 2013-11-28
Schreibe einen Kommentar