Regex, dass Streichhölzer Kamel und Pascal Fall
-
21-09-2019 - |
Frage
Ich bin über einen Parser für eine Sprache zu schreiben, die strengen syntaktischen Regeln angenommen hat, haben etwa von Typen zu nennen, Variablen und so. Zum Beispiel alle Klassen muss sein Pascal, und alle Variablen / Parameter Namen und andere Bezeichner müssen sein camelcase.
Zum Beispiel HTMLParser
ist nicht erlaubt und müssen HtmlParser
benannt werden. Irgendwelche Ideen für einen regulären Ausdruck, dass etwas bieten kann, die Pascal ist, aber nicht über zwei Großbuchstaben in dem?
Lösung
Camelcase:
^[a-z]+(?:[A-Z][a-z]+)*$
Pascal:
^[A-Z][a-z]+(?:[A-Z][a-z]+)*$
Andere Tipps
/([A-Z][a-z]+)*[A-Z][a-z]*/
Aber ich habe Ihre Namens Wahl stinkt zu sagen, sollte HTMLParser erlaubt und bevorzugt werden.
Ich glaube nicht, die Elemente aufgelistet mit Zahlen beginnen (dachten, ich lese es irgendwo so nehmen Sie es mit einem Körnchen Salz), so dass der beste Fall so etwas wie Roger Paten mit einem paar kleineren Modifikationen wäre (meiner Meinung nach)
/([A-Z][a-z0-9]+)*[A-Z][a-z0-9]*/
Sollte so etwas wie, nach einem Großbuchstabe sein, dann zumindest einen kleinen Fall oder Zahl oder mehr, sowie es sieht aus wie es nur einen Großbuchstaben behandelt wie werden erforderlich scheint, aber die zusätzlichen Buchstaben sind optional.
Viel Glück
^[A-Z][a-z]*([A-Z][a-z]*)
Dies sollte funktionieren:
- MadeEasy
- WONDERFUL
- undMe
Diese Arten von prasselt.