Trying to apply regex for not allowing a string with double underscores
[a-z][a-z0-9_-]+[^__]
but its failing in many cases like:
[^__]
matches one character that is not underscore. To assert that your string doesn't have two consecutive underscores, you could use a negative lookahead:
^(?!.*__.*)[a-z][a-z0-9_-]+$
The lookaround asserts that your string does not have two consecutive underscores (?!.*__.*)
, and then matches your required string if the assertion does not fail -- [a-z][a-z0-9_-]+
.