6

型や変数などの命名に関して厳密な構文規則を持つはずの言語用のパーサーを書こうとしています。たとえば、すべてのクラスは PascalCase である必要があり、すべての変数/パラメーター名およびその他の識別子はcamelCase である必要があります。

たとえば、HTMLParserは許可されておらず、名前を付ける必要がありますHtmlParser。PascalCase に一致するが、大文字が 2 文字含まれていない正規表現のアイデアはありますか?

4

4 に答える 4

17

キャメルケース:

^[a-z]+(?:[A-Z][a-z]+)*$

PascalCase:

^[A-Z][a-z]+(?:[A-Z][a-z]+)*$
于 2010-01-21T01:57:00.880 に答える
2

リストされている項目が数字で始まるとは思えません (どこかで読んだので、一粒の塩で考えてください)。したがって、最良のケースは、Roger Pate のようなもので、いくつかのマイナーな変更が加えられたものになります (私の意見では)。

/^([A-Z][a-z0-9]+)*[A-Z][a-z0-9]*$/

大文字を探してから、少なくとも 1 つの小文字または数字、またはそれ以上のようなものにする必要があります。また、必要に応じて大文字のみを処理するように見えますが、追加の文字はオプションです。

幸運を

于 2010-01-21T02:10:05.973 に答える
2
/([A-Z][a-z]+)*[A-Z][a-z]*/

しかし、あなたの命名の選択は悪臭を放っていると言わざるを得ません。HTMLParser を許可し、優先する必要があります。

于 2010-01-20T17:51:10.837 に答える