Fazer Substituição em Regex: Método sub()
Porém, é comum que, ao invés de apenas detectar, queiramos substituir uma coisa por outra.
Por exemplo, se seu amigo diz:
- Funk é o melhor estilo musical
Seria legal ser substituído por:
- Rock é o melhor estilo musical
Isso pode ser feito através do método sub(), presentes em objetos Regex.
Esse método recebe dois argumentos:
A string, o texto ou valor que vamos querer colocar no lugar de outra
A string onde irá ocorrer a substituição
Ou seja: minhaRegex.sub( substituirPorIsso, antigaString)
O script abaixo substituir o padrão 'Funk' por 'Heavy Metal':
import re while True: texto = input("Digite sua string: " ) minhaRegex = re.compile(r'Funk') minhaRegex = minhaRegex.sub('Heavy Metal', texto) print(minhaRegex)
Veja o resultado:
Texto correspondente na substituição: \1, \2, \3...
Muitas vezes, é comum que queiramos usar o texto correspondente (que vai ser encontrado pelo padrão), pra usar na própria substituição.Por exemplo, o primeiro grupo da Regex, será simbolizado por \1.
O segundo grupo, por \2 .
E assim por diante.
Por exemplo, a string de regex: r'padrao1(padrao2)padrao3(padrao4)'
O padrao2 pode ser simbolizado por \1
O padrao4 pode ser simbolizado por \2
O script abaixo detecta se foi digitado Funk.
Se sim, essa correspondência vai ser armazenada em \1
Então, substituímos ela por '\1 (eca)'
Ou seja, onde tiver 'Funk', vai aparecer 'Funk (eca)':
import re while True: texto = input("Digite sua string: " ) minhaRegex = re.compile(r'(Funk)') minhaRegex = minhaRegex.sub('\1 (eca)', texto) print(minhaRegex
Nenhum comentário:
Postar um comentário