Coletânea Python do ZERO às Redes Neurais Artificiais
Métodos de Expressões Regulares
Nos tópicos anteriores usamos em meio a nosso entendimento de
metacaracteres a função findall( ), e não por acaso, escolhi usar dela em nossos exemplos pois na prática é a função de expressão regular mais usada.
Avançando um pouco com métodos de expressões regulares, podemos facilmente entender a função re.sub( ).
Uma vez que em expressões regulares estamos realizando um tratamento mais avançado de nossas strings, nada mais comum do que ter uma função dedicada a substituir elementos da mesma, e por meio da biblioteca regex, isso é feito via função sub( ).
Usando novamente de nossa variável texto1 e sua string, vimos
anteriormente que um dos nomes citados ao longo do texto era João.
Supondo que quiséssemos substituir todas as instâncias de João no texto por outro nome, Carlos por exemplo, isso seria feito alterando a função findall( ) por sub( ).
Outra particularidade é que como parâmetro dessa função devemos na r’String especificar qual string será substituída e por qual, assim como o nome da variável em questão onde consta toda a string.
Como esperado, é retornada toda a string de texto1, com todas as
referências a “João” sobrescritas por “Carlos”.
Outra função da biblioteca regex é a match( ), ela basicamente tem
funcionalidade parecida com a de findall( ) porém bem mais limitada.
Enquanto findall( ) como próprio nome sugere, busca em toda a string, match é usada apenas quando queremos verificar a primeira palavra de um texto.
Note que no exemplo, reaproveitando nossa variável minha_string de
exemplos anteriores, ao usar da função match( ), parametrizando a r’String com ‘Fernando’, é retornado um objeto fazendo referência ao espaço de memória alocado para o mesmo.
Da mesma forma, tentando buscar outra palavra de outra posição do texto, o retorno sempre será None.
Outra possibilidade interessante é a de separar em partes uma string via
expressão regular. Para isso, da biblioteca regex usaremos da função split( ).
Diferente da função split( ) nativa do Python, que desmembra uma string
caractere por caractere, a função split( ) da biblioteca regex recebe um marcador, normalmente um símbolo especial, para que separe a string em duas partes, uma antes e outra depois deste marcador.
Nesse exemplo, usando uma vírgula como separador para o texto, basta
referenciar a mesma em nossa r’String.
O resultado, como esperado, serão duas strings independentes.
Outros metacaracteres e funções podem ser encontradas diretamente na
documentação da biblioteca regex, aqui, trouxe apenas as que de fato uso rotineiramente para que você tenha este conhecimento.
Link para documentação oficial da biblioteca regex:
https://docs.python.org/3/library/re.html