Update: Updated regex such that identifier is not started with a digit.
To limit the length, {}
are usually used.
For example, your regex was [_a-zA-Z0-9]+
. Means, allow any alphanumeric values and underscore, and the length must be greater than equals to 1. If we want to limit it not to exceed 31 characters, we can rewrite the regex as:
[_a-zA-Z0-9]{1,31}
{1,31} indicates that this will accept alphanumeric values of length greater than equals to 1 and less than equals to 31.
However, the above regex also means that the identifier can start with a digit. Note that there are three ranges provided: a-z, A-Z, and 0-9. To limit the identifier to start with an alphabet or underscore followed by alphabet, digit or underscore, following regex can be used:
[_a-zA-Z][_a-zA-Z0-9]{0,30}
The first portion [_a-zA-Z]
forces the identifier to start with a character or underscore. It also makes sure that the identifier is not empty. The remaining portion of the regex [_a-zA-Z0-9]{0-30}
ensures that only characters, underscore and digits are accepted and that in addition to the first character, up to 30 more can be added to the identifier.
You can make respective changes to your regex.
(?!\d)\w*
– Pawnbroker