[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