Olhei as dúvidas de outros alunos e percebi que a maioria escreveu a função "procurar_regex" da seguinte maneira:
def procurar_regex(nomes):
print('Digite a expressão regular')
regex = raw_input()
nomes_concatenados = ''.join(nomes)
resultados = re.findall(regex, nomes_concatenados)
print(resultados)
Queria entender porque nesta parte
resultados = re.findall(regex, nomes_concatenados)
o "regex" dentro do re.findall não recebe nenhum modificador, como o "\w" ou "\d".
Tentei executar o código desta maneira e recebo o erro:
Traceback (most recent call last):
File "app.py", line 80, in <module>
menu()
File "app.py", line 77, in menu
procurar_regex(nomes)
File "app.py", line 39, in procurar_regex
resultados = re.findall(regex, nomes_concatenados)
NameError: global name 're' is not defined
O que está errado?
Código completo do app.py:
# -*- coding: UTF-8 -*-
def listar(nomes):
print 'Listando nomes:'
for nome in nomes:
print nome
def cadastrar(nomes):
print 'Digite o nome'
nome = raw_input()
nomes.append(nome)
def remover(nomes):
print 'Qual nome você gostaria de remover?'
nome = raw_input()
nomes.remove(nome)
def alterar(nomes):
print 'Qual nome vc gostaria de alterar?'
nome_a_alterar = raw_input()
if (nome_a_alterar in nomes):
posicao = nomes.index(nome_a_alterar)
print 'Digite o substituto'
nome_novo = raw_input()
nomes[posicao] = nome_novo
def procurar(nomes):
print 'Digite o nome a procurar:'
nome = raw_input()
if(nome in nomes):
print "Nome %s está cadastrado" % (nome)
else:
print "Nome %s não está cadastrado" % (nome)
def procurar_regex(nomes):
print('Digite a expressão regular')
regex = raw_input()
nomes_concatenados = ''.join(nomes)
resultados = re.findall(regex, nomes_concatenados)
print(resultados)
def menu():
nomes = []
escolha= ''
while (escolha != '0'):
print ' '
print '=================='
print ' MENU:'
print '1 para cadastrar'
print '2 para listar'
print '3 para remover'
print '4 para alterar'
print '5 para procurar'
print '6 para regex'
print '0 para terminar'
print '=================='
print ' '
escolha = raw_input()
if(escolha =='1'):
cadastrar(nomes)
if(escolha == '2'):
listar(nomes)
if(escolha == '3'):
remover(nomes)
if(escolha == '4'):
alterar(nomes)
if(escolha == '5'):
procurar(nomes)
if(escolha == '6'):
procurar_regex(nomes)
menu()