Aurelio Regex

Embed Size (px)

Citation preview

  • 7/25/2019 Aurelio Regex

    1/51

    Expresses Regulares

    Aurelio Jargas

    http://aurelio.net@oreio

  • 7/25/2019 Aurelio Regex

    2/51

    http://aurelio.net/regex/guia

  • 7/25/2019 Aurelio Regex

    3/51

    http://piazinho.com.br

  • 7/25/2019 Aurelio Regex

    4/51

    Regex?

    de comer?

  • 7/25/2019 Aurelio Regex

    5/51

    cora[c][a]o

  • 7/25/2019 Aurelio Regex

    6/51

    cora[c][a]o

  • 7/25/2019 Aurelio Regex

    7/51

    cora[c][a]o

    corao

    coraao

    coracocoracao

  • 7/25/2019 Aurelio Regex

    8/51

    (mini|super|hiper)mercado

  • 7/25/2019 Aurelio Regex

    9/51

    (mini|super|hiper)mercado

  • 7/25/2019 Aurelio Regex

    10/51

    (mini|super|hiper)mercado

    minimercado

    supermercado

    hipermercado

  • 7/25/2019 Aurelio Regex

    11/51

    (mini|super|hiper)?mercado

    minimercado

    supermercado

    hipermercado mercado

  • 7/25/2019 Aurelio Regex

    12/51

    \d\d\.\d\d\d-\d\d\d

  • 7/25/2019 Aurelio Regex

    13/51

    \d\d\.\d\d\d-\d\d\d

  • 7/25/2019 Aurelio Regex

    14/51

    \d\d\.\d\d\d-\d\d\d

    80.000-000

    80.220-320

    12.345-67877.777-777

  • 7/25/2019 Aurelio Regex

    15/51

  • 7/25/2019 Aurelio Regex

    16/51

    \d{3}\.\d{3}\.\d{3}-\d{2}

  • 7/25/2019 Aurelio Regex

    17/51

    \d{3}\.\d{3}\.\d{3}-\d{2}

  • 7/25/2019 Aurelio Regex

    18/51

    \d{3}\.\d{3}\.\d{3}-\d{2}

    015.010.014-55

    685.706.259-13

    243.287.109-71999.999.999-99

  • 7/25/2019 Aurelio Regex

    19/51

  • 7/25/2019 Aurelio Regex

    20/51

    .*

  • 7/25/2019 Aurelio Regex

    21/51

    .*

    Ol

    1, 2, 3, testando...

    negrito

  • 7/25/2019 Aurelio Regex

    22/51

    cora[c][a]o(mini|super|hiper)mercado

    \d\d\.\d\d\d-\d\d\d

    \d{3}\.\d{3}\.\d{3}-\d{2}

    .*

  • 7/25/2019 Aurelio Regex

    23/51

    cora[c][a]o(mini|super|hiper)mercado

    \d\d\.\d\d\d-\d\d\d

    \d{3}\.\d{3}\.\d{3}-\d{2}

    .*

  • 7/25/2019 Aurelio Regex

    24/51

  • 7/25/2019 Aurelio Regex

    25/51

  • 7/25/2019 Aurelio Regex

    26/51

    Onde usar

    expresses regulares?

  • 7/25/2019 Aurelio Regex

    27/51

    Editores de texto

    Emacs Vim gedit Kate Sublime Text Atom

    TextMate Notepad++

    IDE Office

    Android Studio Eclipse Xcode Visual Studio

    LibreOffice

    Google Planilhas Microsoft Word

  • 7/25/2019 Aurelio Regex

    28/51

  • 7/25/2019 Aurelio Regex

    29/51

    Apache Nginx

    Servidores HTTP

    # Usar URLs amigveis em vez de query strings feiosas

    # De: http://example.com/produto/1234/info

    # Para: http://example.com/produto.php?id=1234&action=info

    RewriteEngineon RewriteRule"^/(\w+)/(\d+)/(\w+)$"/$1.php?id=$2&action=$3

  • 7/25/2019 Aurelio Regex

    30/51

  • 7/25/2019 Aurelio Regex

    31/51

    C C# C++ Delphi Go Haskell

    Java JavaScript Lua

    Linguagens de programao

    Objective-C Perl PHP Python R Ruby

    Scala Tcl Visual Basic

  • 7/25/2019 Aurelio Regex

    32/51

  • 7/25/2019 Aurelio Regex

    33/51

    CEP:

  • 7/25/2019 Aurelio Regex

    34/51

  • 7/25/2019 Aurelio Regex

    35/51

  • 7/25/2019 Aurelio Regex

    36/51

    Procure por:Troque por:

    (.*)$1

    Oi, tudo bem?

    Tudo bem.

    Oi, tudo bem?Tudo bem.

  • 7/25/2019 Aurelio Regex

    37/51

    Procure por:Troque por:

    (n[a]o)$1

    Tenho muito a dizer!

    Mas no lembro agora...

    Tenho muito a dizer!Mas nolembro agora...

  • 7/25/2019 Aurelio Regex

    38/51

    Procure por:Troque por:

    (\d\d):(\d\d)$1horas e $2minutos

    12:34

    23:59

    12 horas e 34 minutos23 horas e 59 minutos

  • 7/25/2019 Aurelio Regex

    39/51

    Procure por:Troque por:

    (\d{2})(\d{3})(\d{3})$1.$2-$3

    80220320

    87654321

    80.220-32087.654-321

  • 7/25/2019 Aurelio Regex

    40/51

    Procure por:Troque por:

    [^0-9]

    80.220-320

    12.345-678

    8022032012345678

  • 7/25/2019 Aurelio Regex

    41/51

    Procure por:Troque por:

    (\d{4})-(\d{2})-(\d{2})$3/$2/$1

    2015-10-14

    1999-12-31

    14/10/201531/12/1999

  • 7/25/2019 Aurelio Regex

    42/51

  • 7/25/2019 Aurelio Regex

    43/51

    Casar uma data: dd/mm/aaaa

    ../../....

    \d{2}/\d{2}/\d{4}

    [0123][0-9]/[01][0-9]/[12][0-9]{3}

    (0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}

    ((0[1-9]|[12][0-9])/02|(0[1-9]|[12][0-9]|30)/(0[469]|11)|(0[1-9]|[12][0-9]|3[01])/(0[13578]|1[02]))/[12][0-9]{3}

  • 7/25/2019 Aurelio Regex

    44/51

    Expresso Regular

    pode nosera melhor soluo

  • 7/25/2019 Aurelio Regex

    45/51

  • 7/25/2019 Aurelio Regex

    46/51

    # Python

    importdatetime

    datetime.datetime.strptime(

    "31/12/1999",

    "%d/%m/%Y"

    )

  • 7/25/2019 Aurelio Regex

    47/51

  • 7/25/2019 Aurelio Regex

    48/51

    Validar e-mail com regex

    .*@.*

    [^@]+@[^@]+

    [A-Za-z0-9_.-]+@[A-Za-z0-9_.]+

    [A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[A-Za-z]{2,6}

    [email protected] [email protected] [email protected] existe ningum l outro l

    mailto:[email protected]:[email protected]
  • 7/25/2019 Aurelio Regex

    49/51

  • 7/25/2019 Aurelio Regex

    50/51

    Onde praticar?

    http://regexpal.comhttp://regex101.com

  • 7/25/2019 Aurelio Regex

    51/51

    $