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?

War es hilfreich?

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:

  1. MadeEasy
  2. WONDERFUL
  3. undMe

Diese Arten von prasselt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top