Я пытаюсь использовать Python re, чтобы проверить строку на что-либо, кроме цифр и тире. Таким образом, будут передаваться только такие строки: «1-2-3-4»
Проблема в том, что строка «1-0-0-0» содержит недопустимые значения. Кажется, он возвращает True независимо от того, что я на него бросаю. «asdf», «asdf%», «1-0-0-0» все возвращают значение True. Я никогда не был хорош с регулярным выражением.
Кто-нибудь может определить, что не так с моим рисунком?
def checkStringForUnallowables(test):
# Returns False if the string passes the unallowables check
stringCheck = re.compile('[abcdefghijklmnopqrstuvwxyz@_!#$%^&*()<>?/\|}{~:]')
# Pass the string in search function of RE object (string_check):
if(stringCheck.search(test) == None):
print("String does not contain unallowables - returning False")
return False
else:
print("String contains unallowables - returning True")
return True