[Expressões regulares]
@brunomacabeusbr
@lukkascost
#ifce
Autores
Bruno Macabeus
Isabel Frota
Lucas Costa
Introdução
Fundamentadas na teoria dos automâtos e das linguagens formais
Originada na década de 50, com o estudo do matemático Stephen Cole Kleene
Primeiras implementação, ainda primitivamente, em SNOBOL, na década de 60
Primeira grande implementação em Perl, na década de 80
Quando usar?
Buscas em textos
Busca em bancos de dados
Interpretações da entrada enviada pelo usuário
Como usar?
Cada linguagem e software implementa de forma diferente as expressões regulares
Códigos de exemplo em Perl
Recebe como entrada uma string com o seguinte formato:
soma <number1> <number2>
menos <number1> <number2>
Se fornecer soma, somará number1 com number2. Se fornecer menos, subtrairá number1 com number2.
#!/usr/bin/perl
use strict;
use warnings;
print('Envie seu comando: ');
chomp(my $input = <>);
my ($command, $number1, $number2) = $input =~ /^(\w+)\s+(\d+)\s+(\d+)$/;
if ($command eq 'soma') {
print($number1 . ' + '. $number2 . ' = ' . ($number1 + $number2) . "\n");
} else {
print($number1 . ' - '. $number2 . ' = ' . ($number1 - $number2) . "\n");
}
import re
input_value = input('Envie seu comando: ')
regexp_command = re.compile(r'^(\w+)\s+(\d+)\s+(\d+)$')
command, number1, number2 = regexp_command.search(input_value).groups()
number1 = int(number1)
number2 = int(number2)
if command == 'soma':
print(number1, '+', number2, '=', number1 + number2)
else:
print(number1, '-', number2, '=', number1 - number2)
Códigos de exemplo em Python
Recebe como entrada uma string com o seguinte formato:
soma <number1> <number2>
menos <number1> <number2>
Se fornecer soma, somará number1 com number2. Se fornecer menos, subtrairá number1 com number2.
print('Envie seu comando:')
command, number1, number2 = string.match(io.read(), '(%w+)%s+(%d+)%s+(%d+)')
if command == 'soma' then
print(number1, '+', number2, '=', number1 + number2)
else
print(number1, '-', number2, '=', number1 - number2)
end
Códigos de exemplo em Lua
Recebe como entrada uma string com o seguinte formato:
soma <number1> <number2>
menos <number1> <number2>
Se fornecer soma, somará number1 com number2. Se fornecer menos, subtrairá number1 com number2.
Ferramentas online
https://jex.im/regulex/
https://regex101.com/
Expressões regulares
By brunomacabeus
Expressões regulares
- 678