Tried with [^-][^0-9]$, but this also excludes d9 or -a. I would like this to only work with -1, -2, -3 etc.
CodePudding user response:
You can use an NFA regex with lookbehind support like
$(?<!-[0-9])
It matches an end of string that is not immediately preceded with a - a digit.
A variation of this is
^(?!.*-[0-9]$)
^(?!.*-[0-9]$).*
If you deal with a POSIX (ERE here) regex engine, you can use
^(.*([^-].|.[^0-9])|.)$
See this regex demo. Details:
^- start of string(- start of a group:.*- any zero or more chars([^-].|.[^0-9])- either a char other than a-and then any one char, or any single char and then any char other than a digit
|- or.- any one char
)- end of the group$- end of string.

