O GoConqr está de visual novo! Conte para nós o que você achou.

Flashcards

Regular Expressions

Victor Bini Technical Skills asa Inglês 17 flashcards

Regular Expressions

Flashcards do conjunto (17)

  1. 1Quando estamos escrevendo expressões regulares o que queremos dizer?'Esse grupo de characters se encontra com algum padrão especifico?'
    e é isso que estamos trabalhando com expressões regulares, encontrar padrões em strings.
  2. 2Qual a estrutura basica de uma 'regular expression'?O padrão que buscamos começa com o primeiro '/' e termina depois do ultimo '/', os caracteres do meio são o que chamamos de 'padrão'
    /407|321/
    aqui iniciamos e fechamos a nossa expressão regular nos '/' e bucamos por 407 OU(|) 321 em nossa string algo.
    Se queremos buscar por algum padrão de letras também podemos fazer:
    /boat/
    se rodamos isso em um subject 'boater' ele vai retornar true, se rodamos em 'boa' vai retornar false, ele vai verificar se esse padrão de characters existem.
  3. 3Se queremos que nossa expressão regular retorne true de qualquer subject com ar, arr, arrr, até infinitos r, como podemos fazer isso de forma eficiente?Podemos fazer isso com 'OR' - '|' porém isso seria muito ineficiente e deixaria nossa expressão regular muito grande, para conseguir atingir todos os subject de forma eficiente e total(não parcial), devemos utilizar o '+';
    /ar+/
    assim arrr (...) inifitos r vai retornar true,
  4. 4Se queremos pemitir qualquer letra do alfabeto como podemos fazer uma expressão regular?Podemos utilizar character set usando [a-z]
    [a-z]
    'a' entra como inicio do range.
    'z' final do range.
    NOTAS: Um 'range' só funciona em um conjunto de characters E um Character set só representa 1 CHARACTER
    para por exemplo utilizar essa expressão regular na validação de nomes, podemos adicionar:
    /[a-z]+/
    de forma que todos os nomes serão validados SE e SOMENTE SE possuirem só letras de a á z
  5. 5se rodarmos a expressão regular /[a-z]+/ no subject 'Blackbeard', vamos ter uma validação parcial, porque?isso acontece porque não estamos trabalhando com elementos em uppercase, para validar elementos independe se estão em uppercase ou lowercase podemos adicionar um modifier em nossa expressão regular:
    /[a-z]+/i
    o 'i' atua como modifier em nossa expressão regular, ele significa 'case insensitive', o que vai permitir que o padrão se confirme com uppercase e lowercase
    (modifiers são normalmente relacionados a lingua que programamos, por isso temos que verificar a nossa documentação. )
  6. 6se rodarmos 'Captain Hook' como subject em nossa expressão regular /[a-z]+/i, vamos obter uma validação parcial, porque?Isso acontece por causa do espaço em branco do subject, para validar ele podemos utilizar o \s
    '\s' é o mesmo que dizer 'whitespace character', espaços em brancos nesse caso podem incluir, novas linhas, espaços, tabs
    Então poderiamos validar esse subject com:
    [/Captain\sHook/], porém isso é especifico demais e válido somente para esse caso, para abranger uma validação de quaisquer nomes:
    /[a-z\s]+/i
    IMPORTANTE FALAR QUE A ORDEM NÃO IMPORTA A MESMA EXPRESSÃO PODERIA SER:
    /[\sa-z]+/i
  7. 7se rodarmos 'Long John the 3rd' como subject da nossa expressão regular: /[a-z\s]+/i, vamos obter uma validação parcial, porque?Isso ocorre pelo caractere numerico do subject '3',
    para permitir podemos escrever nossa expressão regular como:
    /[a-z0-9\s]/i
    porém tem uma outra maneira de validarmos esses subjects
    podemos utilizar o \w
    que literalmente significa:
    [a-zA-Z0-9], que é exatamente como estamos trabalhando:
    Word MetaCharacter
    /[\w\s]+/
  8. 8como fazemos para uma expressão regular validar o subject 'sara@example.com'?NOTA: \w only searchs por uma palavra como characters
    então para validarmos esse subject vamos utilizar:
    / \w+@\w+ /
    assim nos já conseguimos validar o sara@examplo e qualquer outro subject nesse mesmo padrão word@word
    Para validar o .com:
    / \w+@\w+.\w /
    o problema é que o '.' é conhecido como 'carta branca', ele é usado para validar qualquer metacharacter ()*\^! então podemos passar subjects como :
    sara@example!com e ele ira valida, para resolver isso precisamos 'escapar' para que ele seja valido SOMENTE para o ., escapamos com \.
    Então nossa expressão regular fica:
    / \w+@\w+\.com /
    Dessa forma validamos nosso subject e qualquer outro no mesmo padrão @.
  9. 9Como fazemos para utilizar characters especiais?. -> Matches any character exept new line
    /. ->Matches literal '.' character
    + -> Matches 1 or more times
    /+ -> Mathers literal '+' character
    ? -> Make proceeding pattern optional
    \? -> Matches literal '?' character
  10. 10como fazemos para validar uma expressão regular com o subject 'sara@example.org' ou .com ou .edu ?se escrevermos a expressão regular:
    \ /w+@\w+\.com|net|org|edu \
    o que vamos ter é que um subject 'net' será validado assim como sara@example.com, porém .net não será validado, como em matemática em expressões regulares também podemos utilizar o () para definir o grupo ao qual essa regra pertence, então para validar diferentes elementos no final vamos fazer a seguinte expressão regular:
    / \w+@\w+\.(com|org|edu) /
  11. 11Qual o problema dessa expressão regular: / \w+@\w+\.(com|org|edu) / e porque ela validaria o subject: 'sara@example.orgARS'Isso acontece porque não estamos especificando o final e o inicio para a validação da string.
    se buscarmos por:
    / ^learningbydoing$ /
    Ele vai buscar no subject a string que COMEÇA(^) COM learningbydoing e termina nessa mesma forma($)
    ^ - Start Looking at the bining of the subject .
    $ - Stop looking at the end of the subject.
    assim nos asseguramos que não á nenhum texto ANTES ou DEPOIS do padrão
    Então para a validação correta desse subject vamos utilizar essa expressão regular :
    / ^\w+@\w+\.(com|net|org|edu)$ /i
  12. 12Como utilizamos o word boundaries with the boundaty metacharacter?\b -> Boundary Metacharacter
    'whole words only'
    Se pensarmos nessa expressão regular:
    / \b \w+ \b /
    nos estamos validando:
    |Learning| |By| |Doing| - Word and word
    então se temos:
    / \bok\b /
    estamos buscando o 'ok' em qualquer palavras para validação, seja:
    'ok'
    'okie'
  13. 13Como fazemos para que parte do subject seja opcional em nossa validação?Characters do padrão que são seguidos por uma '?' são marcados como opcionais
    / ship? /
    nessa expressão regular o 'p' é opcional, então seria validado shin e ship porque o 'p' é opcional.
    podemos utilizar o '?' opcional com grupos
    então para validar 'ok' e 'okay' podemos fazer:
    / \bok(ay)?\b /i
    a porção 'ay' é opcional na expressão regular.
    se queremos que nossa validação seja valida para ok, okay e sure podemos utilizar a expressão regular :
    / \b(ok(ay)?|sure)\b/i
    dessa forma nossa boldarage '\b' vai funcionar parfeitamente tanto para o opcional ok ou okay ou para sure.
    não validando 'ensure' e validando 'sure';
  14. 14Como fazemos para executar uma expressão regular que não aceite numeros?/ [^\d]+ /i
    The '^' means 'not' when placed within a character set.
    The '\d' means any numbers,
    Então o que obtemos aqui é uma expressão regular que aceita qualquer coisa no subject que não contenha numeros.
    porém não queremos 2 characters com significados diferentes em nossas regular expressions, ^ no inicio e ^como negativo, por isso podemos utilizar o \D captalize, o captalize vai funcionar também como uma expressão negativa:
    \D -> Matches every character except numbers
    \S Matches every character except white spaces
    \W matches every character except words
  15. 15Como fazemos para validar específicos numeras vezes em nossas expressões?/ [a-z]{2} /
    -Matches any character from a-z exactly 2 times
    / [a-z]{1-3} /
    -matches the character in question a minimum of 1 time and a maximum of 3 times
  16. 16Como funciona o 'global modifier' e 'multline modifier'?/^/w+penguin$/mig
    g -> Will match 'penguin' as many times as possible with global modifier.
    (permitindo encontrar o padrão varias vezes em uma string de muitas linhas)
    m->Multiline modifier vai permitir que utilizemos o inicio '^' e fim '$' para ser utilizado na LINHA e não no começo e final da string.
    então em um subject com varios 'penguin' ele vai obter todos.
  17. 17Como fazemos para retornar um valor com 'Matching grups '? usamos o () em nossa expressão regular. (?:) no capturing groupComo fazemos para retornar um valor com 'Matching grups '? usamos o () em nossa expressão regular. (?:) no capturing group

Informações

Descrição
asa Technical Skills FlashCards sobre Regular Expressions, criado por Victor Bini em 30-07-2017.
Criado por
Victor Bini
Visualizações
0
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?