I need a regular expression that will match any string containing at most 2 dashes and 2 dots. There does not HAVE to be a dash nor a dot, but if there is 3+ dashes or>
Is this matching your expectations?
(?!^.*?([.-]).*\1.*\1.*$)^.*$
See it here on Regexr
(?!^.*?([.-]).*\1.*\1.*$)
is a negative lookahead. It matches the first .-
put it in the capture group 1, and then checks if there are two more of them using hte backreference \1
. As soon as it found three, the expression will not match anymore.
^.*$
matches everything from start to the end, if the negative lookahead has not matched.