Cプログラミング言語で識別子を認識するための通常の定義は、
letter -> a|b|...z|A|B|...|Z|_
digit -> 0|1|...|9
identifier -> letter(letter|digit)*
この定義はフォームの識別子を生成します
識別子:[_a-zA-Z][_a-zA-Z0-9]*
私の質問は、生成できる識別子の長さを31文字以下に制限する方法です。正規定義でどのような変更を行う必要があるか、または正規表現を記述して指定された長さ以下に制限する方法。誰か助けてくださいませんか。ありがとう。
あなたが探している正規表現は:
_[_a-zA-Z][_a-zA-Z0-9]{0,30}
_
nderscoreまたはletterの後にX
nderscores、lettersまたはnumbersが一致します、ここで_0 <= X <= 30
_
pdate:IDが数字で開始されないように正規表現を更新しました。
長さを制限するには、{}
が通常使用されます。
たとえば、正規表現は[a-zA-Z0-9]+
。つまり、任意の英数字値を許可し、長さは1以上でなければなりません。31文字を超えないように制限したい場合は、正規表現を次のように書き換えることができます。
[a-zA-Z0-9]{1,31}
{1,31}は、これが1以上31以下の英数字値を受け入れることを示します。
ただし、上記の正規表現は、識別子が数字で開始できることも意味します。 3つの範囲が提供されていることに注意してください:a-z、A-Z、および0-9。識別子がアルファベットで始まり、その後にアルファベットまたは数字が続くように制限するには、次の正規表現を使用できます。
[a-zA-Z][a-zA-Z0-9]{0-30}
最初の部分[a-zA-Z]
は、識別子が文字で始まるように強制します。また、識別子が空でないことも確認します。正規表現の残りの部分[a-zA-Z0-9]{0-30}
を使用すると、文字と数字のみが受け入れられ、最初の文字に加えて、最大30個まで識別子に追加できます。
正規表現にそれぞれの変更を加えることができます。