На вашем месте я бы просто удалил () строку перед тем, как передать ее, и использовал бы что-то вроде re.sub () , где мы можем сказать, что он игнорирует регистр, используя ' flags =re.IGNORECASE 'как показано ниже.
import re
s = " new South Wales ".strip()
for r in (("New South Wales", "NSW"), ("Victoria", "VIC"), ("Queensland", "QLD"), ("South Australia", "SA"), ("Western Australia", "WA"), ("Northern Territory", "NT"), ("Tasmania", "TAS"), ("Australian Capital Territory", "ACT")):
_regex = '{0}|{1}'.format(r[0], r[1])
if re.match(_regex, s, flags=re.IGNORECASE):
subbed_string = re.sub(r[0], r[1], s, flags=re.IGNORECASE)
print({'state': subbed_string.upper()})
Кроме того, я добавил в проверку на совпадение, прежде чем пытаться подставить в значение.В противном случае вы можете вывести неверный результат.Например:
(('Тасмания', 'TAS') {'штат': 'Новый Южный Уэльс'})