Ответ 1
Регулярное выражение, которое вы ищете, это:
[_a-zA-Z][_a-zA-Z0-9]{0,30}
Он будет соответствовать подчеркиванию или букве, следующим под X
подчеркиваниями, буквами или цифрами, где 0 <= X <= 30
Регулярное определение распознавания идентификаторов на языке программирования 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}
Он будет соответствовать подчеркиванию или букве, следующим под X
подчеркиваниями, буквами или цифрами, где 0 <= X <= 30
Чтобы ограничить длину, обычно используются {}
.
Например, ваше регулярное выражение было [a-zA-Z0-9]+
. Значит, допускайте любые буквенно-цифровые значения, а длина должна быть больше, чем 1. Если мы хотим ограничить ее не более 31 символа, мы можем переписать регулярное выражение так:
[a-zA-Z0-9]{1,31}
{1,31} указывает, что это будет принимать буквенно-цифровые значения длины, превышающие 1, и меньше, чем 31.
Вы можете внести соответствующие изменения в свое регулярное выражение.