Olá pessoal, tudo bom?
Pelo o que eu entendi, quando se usa o "^" em ER, significa que você fara uma busca onde a expressão deve se iniciar de acordo com o especificado, como por exemplo ^[pP] - Começar com p ou P.
Eu fiz o seguinte código:
def procurar_nome(nomes):
print 'Digite o nome que procura: '
nome = raw_input()
lista_nomes = ' '.join(nomes)
regex = r'^%s\w+' %(nome)
resultado = re.findall(regex, lista_nomes)
print resultado
A função receberá uma lista, eu transformo essa lista para que seja possível fazer o filtro com o regex e por fim eu exibo o resultado.
O problema é mais ou menos assim:
1- Cadastro o nome Pedro e depois João 2 - Ao tentar pesquisar por Pedro o programa retorna certo, mas ao tentar pesquisar por João ele retorna vazio [].
Ou seja, ele só retorna quando é o primeiro nome que foi adicionado a lista. Para ter o comportamento que eu espero, é necessário retirar o "^". Gostaria de saber o por quê?