I’m trying to make a test for checking whether a sys.argv input matches the RegEx for an IP address…
As a simple test, I have the following…
import re
pat = re.compile("d{1,3}.d{1,3}.d{1,3}.d{1,3}")
test = pat.match(hostIP)
if test:
   print "Acceptable ip address"
else:
   print "Unacceptable ip address"
However when I pass random values into it, it returns “Acceptable IP address” in most cases, except when I have an “address” that is basically equivalent to d+.
Advertisement
Answer
You have to modify your regex in the following way
pat = re.compile("^d{1,3}.d{1,3}.d{1,3}.d{1,3}$")
that’s because . is a wildcard that stands for “every character”
