Ich verwende diese Funktion, um CamelCase in eine gestrichelte Zeichenkette umzuwandeln:
%Vor% es funktioniert irgendwie, aber theres Problem, wenn ich für ex. Diese Zeichenfolge: getADog
. Es gibt get-adog
zurück, aber ich möchte get-a-dog
Wie soll ich meinen Code ändern? Danke
Verwenden Sie eine Lookahead-Bestätigung :
%Vor%Sehen Sie, wie es online funktioniert: ideone
Sie benötigen dazu keine Lookahead-Assertion, wenn Sie wissen, dass Ihre Zeichenfolge nicht mit einem Großbuchstaben beginnt. Sie können einfach vor jedem Großbuchstaben einen Bindestrich einfügen:
%Vor%Dies wird immer noch nicht mit Fällen wie @ sfjedi's "companyHQ" umgehen - & gt; "Firmenhq". Dafür müssten Sie explizit nach erlaubten großgeschriebenen Teilzeichenfolgen suchen, die nicht geteilt werden sollen, oder Sie sollten einige generische Regeln angeben (z. B. Bindestrich vor dem letzten Zeichen nicht voranstellen).
In den Antworten zu dieser virtuellen Duplikatsfrage finden Sie einige ausgefeiltere Alternativen .
Tags und Links php regex camelcasing