Чтобы вы начали, вы можете перестроить его следующим образом:
ask = 'y'
while ask == 'y':
address = raw_input("Please input the drivers home address (e.g. EH129DN): ")
addresspattern = r"[A-Z][A-Z]\d\d\s?\d[A-Z][A-Z]"
match = re.search(addresspattern, address)
if match:
print "Valid"
else:
print "Invalid"
ask = raw_input("Do you wish to continue? (Y/N): ").lower()
Давать вам следующий вид продукции:
Please input the drivers home address (e.g. EH129DN): EH12 9DN
Valid
Do you wish to continue? (Y/N): y
Please input the drivers home address (e.g. EH129DN): EH129DN
Valid
Do you wish to continue? (Y/N): y
Please input the drivers home address (e.g. EH129DN): EH1 29DN
Invalid
Do you wish to continue? (Y/N): n
Обратите внимание, что если вы пытаетесь сопоставить все действующие почтовые индексы, вам нужно будет исследовать более существенное регулярное выражение. Я сохранил вашу существующую логику, но теперь она позволяет дополнительное пространство между ними. Кроме того, я использовал raw_input()
, поскольку вам нужен ввод текста.
Какая ошибка? –
* «Я не знаю, почему это не работает» * - потому что это неправильный синтаксис регулярных выражений? Шаблон должен быть необработанной строкой ('r" "'), с * обратной косой чертой * для специальных символов. На данный момент ваш шаблон будет соответствовать, например, '" AA/d/d/s/dAA "' ... – jonrsharpe
Это не сработало, я просто попробовал. –