Em Python, como verificar se uma string contém apenas determinados caracteres?

Em Python, como verificar se uma string contém apenas determinados caracteres?

Eu preciso verificar uma string contendo apenas a..z, 0..9 e. (período) e nenhum outro caractere.

Eu poderia iterar sobre cada personagem e verificar se o caractere é a..z ou 0..9, ou. mas isso seria lento.

Não estou claro agora como fazê-lo com uma expressão regular.

Isso está correto? Você pode sugerir uma expressão regular mais simples ou uma abordagem mais eficiente?

#Valid chars . a-z 0-9 
def check(test_str):
    import re
    #http://docs.python.org/library/re.html
    #re.search returns None if no position in the string matches the pattern
    #pattern to search for any character other then . a-z 0-9
    pattern = r'[^\.a-z0-9]'
    if re.search(pattern, test_str):
        #Character other then . a-z 0-9 was found
        print 'Invalid : %r' % (test_str,)
    else:
        #No character other then . a-z 0-9 was found
        print 'Valid   : %r' % (test_str,)

check(test_str='abcde.1')
check(test_str='abcde.1#')
check(test_str='ABCDE.12')
check(test_str='_-/>"!@#12345abcde<')

'''
Output:
>>> 
Valid   : "abcde.1"
Invalid : "abcde.1#"
Invalid : "ABCDE.12"
Invalid : "_-/>"!@#12345abcde<"
'''

questionAnswers(6)

yourAnswerToTheQuestion