camelCase zu streichen - zwei Großbuchstaben nebeneinander

8

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

    
simPod 08.05.2012, 23:07
quelle

2 Antworten

27

Verwenden Sie eine Lookahead-Bestätigung :

%Vor%

Sehen Sie, wie es online funktioniert: ideone

    
Mark Byers 08.05.2012, 23:08
quelle
6

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 .

    
Ergwun 08.05.2012 23:28
quelle

Tags und Links