import re
regex = re.compile(r"(?<=(?i:\bCPF\b\s))(?:<=(?:.+))?(?:\b\d{3}\.?\s?\d{3}\.?\s?\d{3}\-?\s?\d{2}\b)")
test_str = ("CPF 065.983.164-97\n"
"CPF 065 983 164 97\n"
"CPF 06598316497\n"
"CPF 123.456.789-09\n"
"CPF 123 456 789 09\n"
"CPF 12345678909\n\n"
"Juliana Emanuela da Luz Souza portadora do CPF 008.543.213-30, recebe um salário de 1500,30 reais.\n"
" Atualmente mora na Avenida dos logradouros 467 número 14, São Leopoldo e, por 40 horas é empregada na empresa Cristal Serrano com o CNPJ 13.123.321/4133-44. \n"
"De acordo com o seu cadastro, possui o seguinte telefone de contato +55 (54) 99166-6508.\n"
"Conforme vem a solicitar a Receita Federal é indicado que por meio deste documento disposto para o contribuinte de RG 183654527, uma multa no valor de 54 dólares seja cobrada por não possuir a CNH de número 10234556378 e carteira de trabalho 123 45678 91 0 validadas de acordo com a lei atribuída na tribuna com o endereço Avenida Júlio de Castilhos número 45000. \n"
"Conforme sentenciado pelo juiz Carlos Romano de Freitas Pereira da Silva. As informações do indivíduo estão dispostas no email descubraoproblema@sindicato.com.br. \n"
"Para fazer acesso ao email é necessário configurar o computador com que fique com o IPV4 utilizado seja 112.128.52.10 e o IPV6 deve ser 2001:ca8:0:1fe1::200. Para acessar a conta é necessário que o contribuinte utilize o número disposto na carteira de trabalho sendo esta 123.45678.91-0 e o número do passaporte sendo este CS123456. É importante que o usuário comprove os dados utilizando o número do título de eleitor 1234 5678 9101. O valor final que deverá ser pago deve corresponder a um valor simbólico de 7.891,12 brl. \n"
"É Importante destacar a necessidade de mostrar o RG 123456789 e a CNH 12345678910.\n\n")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html