I had this regex in java that matched either an alphanumeric character or the tilde (~)
^([a-z0-9])+|~$
Now I have to add also the characters - and _ I’ve tried a few combinations, neither of which work, for example:
^([a-zA-Z0-9_-])+|~$
^([a-zA-Z0-9]|-|_)+|~$
Sample input strings that must match:
woZOQNVddd
00000
ncnW0mL14-
dEowBO_Eu7
7MyG4XqFz-
A8ft-y6hDu
~
Any clues / suggestion?
-is a special character within square brackets. It indicates a range. If it’s not at either end of the regex it needs to be escaped by putting a\before it.It’s worth pointing out a shortcut:
\wis equivalent to[0-9a-zA-Z_]so I think this is more readable: