Transcrições
1. Introdução: bem-vindo à masterização de expressões regulares no script Java. Este curso trouxe a você por todas as coisas JavaScript. Sou Stephen Hancock e serei seu instrutor. Agora, expressões
regulares às vezes é um tópico que é evitado. A sintaxe não é fácil de entender. Então, quando uma expressão regular é necessária, muitos saem e procuram aquela expressão regular que irá realizar o que querem e,
assim, evitar criá-la eles mesmos. Neste curso, você aprenderá a construir suas próprias expressões regulares. Você aprenderá a entender isso em impostos e aprender como eles podem ajudar a resolver certos problemas de
programação. O que você aprendeu sobre expressões regulares neste curso pode ser aplicado a vários idiomas
diferentes. Mas ao longo do curso, veremos como usar expressões regulares dentro do JavaScript. Então aqui estão os tópicos que vamos abordar. Primeiro, vamos lidar com o básico, e isso inclui um breve histórico e para que expressões regulares podem ser usadas. Vamos falar sobre as diferentes maneiras que você pode usar expressões regulares no script Java. O objeto de rejeição e o rapper de objeto de string podem ser usados com expressões regulares. Vou mostrar-lhe como testar expressões regulares que podem ser muito úteis quando você está montando o seu próprio, para que você possa verificar se as coisas vão funcionar como você quer que elas funcionem. Bem, olhe para definir padrões. Isso é realmente o que as expressões regulares são tudo sobre. Definindo padrões. Vamos falar sobre meta caracteres e conjuntos de caracteres. Vamos olhar para repetição e agrupamentos e expressões ancoradas que vamos cobrir. Olhe as asserções adiante, e veremos como usar Unicode dentro de expressões regulares. E então vamos olhar para expressões regulares úteis, aquelas que são usadas mais comuns. Veja como eles são criados e ajude você a entendê-los para que você possa ajustá-los de acordo suas próprias necessidades. Agora, ao longo do curso, terei que completar tarefas e testes. Isso lhe dará a chance de praticar os conceitos que você tem aprendido. Os arquivos chegam à atribuição, e os arquivos de algumas das palestras estão disponíveis para download. Finalmente, se você tiver dúvidas ao passar pelo curso, certifique-se de perguntá-las. Verifico perguntas com frequência e forneço respostas. Outros alunos também podem fornecer suas respostas, então vamos começar a dominar expressões regulares
2. Uma curta história em expressões regulares: antes de mergulharmos e começarmos a aprender e usar expressões regulares, vamos falar sobre o que elas são e de onde elas vêm. Primeiro, vejamos como podemos usar expressões regulares. Essa é a melhor maneira de entender o que eles são. Então digamos que temos este texto, esta citação do hit guard, e queremos remover toda a pontuação dele. Uma maneira seria percorrer cada letra e compará-la com marcas de pontuação e, em seguida, removê-la usando métodos de string. Mas uma forma de massa é criar uma expressão regular que corresponda a marcas de pontuação e seguida, usar o método de substituição quatro cadeias de caracteres para substituir esses sinais de pontuação por nada. Expressões regulares fornecem uma maneira muito melhor de realizar determinadas tarefas. Digamos, por exemplo, que precisamos verificar uma senha para ver se ela atende a determinados critérios que estabelecemos para senhas que podem ser feitas com uma expressão regular. Digamos que precisamos verificar a entrada de um endereço de e-mail para garantir que ele atende ao formato de um endereço de e-mail que pode ser feito com expressões regulares. Que tal se precisarmos determinar o número de vezes que uma determinada palavra aparece em uma frase que pode ser feita com expressões regulares. E se precisarmos analisar um arquivo de log para determinados dados? Mais uma vez, podemos usar expressões regulares. E se precisarmos trabalhar com a
U.R L para extrair certas informações daquela garota que poderiam ser feitas com
expressões regulares ? Todas essas situações podem ser feitas com expressões regulares,
e, basicamente, elas fornecem outra ferramenta poderosa para você quando você está tentando resolver problemas de programação . Então, quando as expressões regulares se desenvolveram pela primeira vez? O conceito foi desenvolvido em 1950 mordida matemático Steven King, e ele descreveu como uma maneira de identificar a linguagem regular. E eu acredito que é daí que o nome expressões regulares vêm é que ele estava tentando identificar isso. E isso foi, como você pode ver há muitos anos, então está por aí há algum tempo. Tornou-se usado regularmente pela unidade como parte dos utilitários que Aaron unidade para processar texto. Agora você pode ter ouvido falar de grap antes de você pode até mesmo ter usado agarrar. Você já usou o UNIX no passado? Agora, o que significa agarrar é a busca global por expressão regular e correspondência de impressão Então grap aplicou os conceitos que foram desenvolvidos por Stephen King e ajudam a torná-los populares. Foi aí que eles se tornaram populares como parte do UNIX. Agora muitas variações diferentes ocorreram, mas depois se tornaram padronizadas pelo padrão Paszek. Esse é um ponto importante porque uma vez que algo se torna padronizado, isso o torna assim. Ele pode ser usado em muitos lugares diferentes, e ele pega porque as pessoas não precisam aprender maneiras diferentes de fazê-lo agora. Uma versão de expressões regulares foi usada em Pearl nos anos 19. Essa foi talvez a primeira vez que começou a ser usado em linguagens e linguagens de programação . E então, em 1997, Philip Hazel desenvolveu PCR E, que é um padrão para expressões regulares e tem sido usado em muitas, muitas ferramentas modernas. Agora PCR E significa expressões regulares compatíveis com pérolas. Então veio daquele trabalho inicial e Pearl. Agora a razão pela qual isso é importante na razão pela qual eu apresento isso a vocês é que a sintaxe de
expressão regular que vocês vão aprender se aplica a um número de coisas diferentes. Sim, vamos estar olhando especificamente para o script Java agora para usar em um JavaScript Mas esta
sintaxe e a gramática que usamos para definir os padrões em expressão regular são comuns em várias linguagens e várias ferramentas. Existem pequenas diferenças que você pode encontrar, mas a maioria da sintaxe e gramática é comum, e esse é um ponto importante para lembrar. Então, o que você aprende sobre expressões regulares aqui você pode aplicar em outros lugares, então vamos começar a aprender sobre elas.
3. Primeiros passos: como mencionado anteriormente, expressões
regulares são maneira de representar padrões. Quando você está trabalhando com qualquer tipo de entrada textual, você nem sempre pode ter certeza de qual será o valor. E então você usa um padrão. A grande parte sobre aprender expressões regulares é aprender esta sintaxe que descreve esses padrões. Mas antes que possamos fazer isso, precisamos primeiro criar uma expressão regular. Vamos ver como faríamos isso no script Java. Então, primeiro, uma expressão regular é um objeto em javascript. Isso provavelmente não surpreende você se você esteve em torno de script Java por qualquer período de tempo causa Muitas coisas em JavaScript são objetos, enquanto expressões regulares não são exceção. Agora, existem duas maneiras de criar expressões regulares. Como você sabe, com objetos definidos pelo usuário em JavaScript, há duas maneiras de criá-los. Há duas maneiras de criar um aumento. Um é uma sintaxe literal, e outro está usando o construtor que é o mesmo para objetos de expressão regular. Então, aqui está o método que usa o construtor, então temos uma variável que declaramos, e então nós sentamos igual a nova expressão regular. Raggi, X, P e dentro das aspas é o padrão que estamos passando no padrão que queremos que essa expressão regular procure agora,
a sintaxe literal para expressões regulares se parece com isso. Mais uma vez, declaramos a variável. Claro, nós definimos isso igual a, e então nós temos uma barra, que é o início desse padrão de expressão regular. Aqui está o padrão. Outra barra marca o fim do expresso regular, então essas são as duas maneiras de criar expressões regulares. Agora, nesses dois exemplos, qual é o padrão que estava definindo? Bem, agora, tudo o que estamos definindo é texto literal, então texto literal Olá e o mundo do texto literal. Então, é um padrão muito simples neste ponto, mas está mostrando como você criaria esse objeto expressão regular. Agora, Uma vez que você tem um objeto de rejeição, você pode usá-lo com um dos métodos que está disponível no
construtor de expressão regular ou que está disponível no rapper de objeto de string. Essas são as duas áreas dentro do JavaScript onde podemos usar
objetos de expressão regular . Então, para começar, vejamos um exemplo. Esta página, que estou mostrando no momento, é na verdade uma página HTML que vou pular para Sublime. Sublime é o editor de texto de Choice for the Work que eu faço aqui é aquela página html que eu estava apenas mencionando agora associada a esta página html. Temos um arquivo Js ponto aplicativo e aqui é o arquivo Js ponto aplicativo. Então, vamos olhar para como podemos usar as expressões regulares que acabamos de ver como um exemplo dentro deste aplicativo dot Js arquivo. Então vamos fazer isso mudar esse código. Bem, então atualize esta página e veja quais são os nossos resultados. Então vamos primeiro configurar as mesmas duas expressões regulares que acabamos de ver. Então declaramos a variável e definimos que igual a este usa o construtor novo Reggie XP e agora estamos passando. O padrão, que é companheiro na segunda maneira, usa a sintaxe literal. Então, com este, usamos barras para definir o padrão de expressão regular. Tudo bem, agora, vamos usar ambos esses objetos com um desses métodos que eu mencionei estão disponíveis no objeto de expressão regular ou no rapper de objeto string. Então eu só vou fazer login no console. Os resultados disto é tudo o que faremos neste momento. E assim eu vou ter a primeira expressão regular. E assim, vez que este é um objeto de expressão regular, há certo método disponível. Um desses métodos que está disponível é test, e isso nos permite testar algum texto para ver se o padrão que criamos corresponde. E então o texto que vamos passar está bem aqui. Agora devemos ser capazes de ver se este padrão é compatível. E como você pode ver, há a palavra Olá dentro desta string para que ela corresponda. Ele vai dizer que sim. Encontrei esse padrão dentro deste sonho. Agora a mesma coisa ocorrerá com o 2º 1 porque existe a palavra mundo. E como eu disse, ambos os padrões ou apenas texto literal neste momento, não
estamos fazendo nada louco. Então vamos olhar para o 2º 1 também. Vamos testar esse e passaremos no mesmo texto. Agora, o que é que isto vai voltar? Qual é o método de ensaio? Voltar? Bem, é só verificar se este padrão é compatível. Se for, ele retorna verdadeiro. Se não for, devolve a falha, então é tudo o que vamos ver. Então vamos dar uma olhada tão rápido. Guarde isso. Eu vou saltar para fora e atualizá-lo, e então eu vou apenas abrir o console. E como você pode ver, nós temos uma verdade em uma verdade. Então, em ambos os casos, eles encontraram uma correspondência. O padrão Olá é uma parte desta string, eo mundo padrão é uma parte desta string. É o que está nos dizendo agora. E se mudarmos este 2º mundo do pé? Esse é o texto literal que estamos procurando. Salve essa atualização. Claro, agora o segundo registro do cônsul é falso. Ele não encontrou uma correspondência, então isso é ótimo. Nós criamos nossa primeira expressão regular, e nós realmente a usamos usando o método de teste. Mas quantas aplicações existem realmente para esse método de teste? Tem que haver outras maneiras de usar expressões regulares, e há isso é o que vamos olhar no próximo tópico.
4. Usando expressões regulares no JavaScript: no filme anterior. Nós olhamos para uma expressão regular muito simples, e nós a usamos com o método de teste do objeto rejeita. Esta é uma maneira de usar expressões regulares em dados textuais, mas teste não é. O único método está disponível. Temos vários métodos que podemos usar. Há dois no objeto Rejets e quatro métodos que estão disponíveis em strings que nos
permitem trabalhar com expressões regulares em dados textuais. Vamos primeiro olhar para vários exemplos de cada um desses métodos e, em seguida, vamos resumir esses métodos no final. Então aqui as expressões regulares estavam trabalhando no último filme. Agora eu vou mudar este primeiro 1 para usar o mesmo método literal de definição de
expressão regular . Esse é o método que eu prefiro. Esse é o método que a maioria dos desenvolvedores de JavaScript prefere. É mais simples de digitar, muito mais direto agora. Fizemos o teste, e basicamente o que conseguimos. O resultado do teste é culpa da turnê. Se ele encontrou uma correspondência no taxado, ele iria retornar true e note com os métodos no objeto de expressão regular que passamos na string que queremos executar a correspondência padrão em Então qualquer método que usamos a partir da expressão
regular criamos a expressão regular primeiro
e, em seguida, passamos em um fluxo, assim como fizemos aqui. Então, o segundo método que está disponível em objetos de expressão regular é exato. Então deixe-me mudar o teste para exato e vamos dar uma olhada nisso. Abra o cônsul. Observe que em ambos os casos obtemos uma matriz. Se abrirmos essa matriz, podemos ver a primeira entrada. Só tem uma entrada, um elemento, o raio. E é o texto real que corresponde ao padrão. Agora, vez que estamos usando um padrão simples agora, que é apenas texto literal, então o texto real que corresponde é o mesmo padrão tão exato retorna uma matriz de todas as correspondências da string que passamos. Neste caso, temos uma única correspondência. Recebemos uma entrada no array, mas notamos que ele também fornece informações adicionais diminuídas. Temos uma propriedade de índice. Este é o índice de onde ocorreu a correspondência. Então, se olharmos para aquela corda e começarmos a contar com zero,
o início da partida seria 41. O que é indicado aqui no índice, também
temos a entrada. Então esta é basicamente a string que foi passada nessa história é uma propriedade de que arrays . Bem, então temos algumas informações adicionais sobre a taxa, não apenas as partidas que foram alcançadas. Podemos ver a mesma coisa com a segunda correspondência, Então esse é o método exato que está disponível em objetos de expressão regular. Então temos dois métodos de teste e exato. Agora nós também temos métodos que estão disponíveis é uma parte de uma string. Então nós criamos uma string aqui txt quando strings air criado em JavaScript, eles têm um rapper objeto string que fornece alguns métodos que podemos usar para trabalhar com essa string. Alguns desses métodos nos permitem usar expressões regulares. Há um total de quatro que queremos olhar. Então deixe-me comentar essas declarações, e agora vamos estar trabalhando com a string. Assim como com o objeto de expressão regular que usamos, não sintaxe toe acessar esses métodos. Então txt dot max é o primeiro 1 que vamos olhar agora. Você no objeto de expressão regular. Passamos no fluxo sobre os métodos de string que passamos na expressão regular. Então dentro de parênteses todos passam em Reg. Exe um. Agora vamos ver o que isso produz. Este é o método de correspondência. Aviso. Está nos dando exatamente a mesma coisa que faz no objeto rejeitado. Dá-nos a correspondência, o texto da partida. Ele nos dá o índice e nos dá a string que foi usada. Então correspondência na string e exata sobre o objeto rejeita são os mesmos. Eles produzem o mesmo tipo de saída, que é uma matriz. Agora vamos ver as pesquisas de pesquisa. Outro método. Podemos me usar para dizer que atualizar. Basicamente, toda busca nos dá o índice. Agora, se estamos fazendo algum tipo de declaração onde precisamos do índice da correspondência, então procurar é uma maneira mais fácil de obtê-lo do que tentar puxá-lo de O arejado é produzido com o método de correspondência. Então, se quisermos apenas o índice, então usaremos a busca. Agora, os próximos dois métodos, vamos olhar para este ar, provavelmente o mais usado com expressões regulares, especialmente o próximo, e este é substituído. O propósito de substitui para nos permitir substituir algum texto. Seja qual for
o texto correspondente, o padrão que passamos com a expressão regular substitui esse texto algum outro texto. Então substituir leva dois parâmetros. O 1º 1 é uma expressão regular. O segundo 1 é o texto pelo qual queremos substituí-lo, então vamos procurar um padrão que corresponda ao texto literal. Olá e nós fomos substituir isso com o texto. Oi, vamos em frente e salvar essa atualização. Aqui está a nossa nova string com hello substituído pela palavra high now algo que é importante estar ciente aqui digitando txt impressionpress Return notou que a string ainda é a mesma, então substituir não fez uma alteração na string porque é imutável. No entanto, ele retornou uma nova string, e isso é o que estamos exibindo com nossa declaração de log de ponto cônsul é a nova string com o hello substituído pela palavra high. Então replace é um método em cadeias de caracteres que é freqüentemente usado com expressões regulares. Muito bem, mais
um método que queremos analisar e que está dividido agora. Você provavelmente usar split no passado Split é basicamente um método permite que você transforme uma string em uma matriz, e a maneira como ele faz isso é você especificar o caractere ou caracteres que você deseja executar a divisão em. Então, qual caractere agir é o delimitador para determinar os elementos da matriz. Então, como exemplo, remova o segundo perímetro. Nós só temos um parâmetro foi dividido. E se usássemos a expressão regular com o padrão? Olá. O que vai acontecer aqui é vai procurar uma palavra Olá e vai usar como um er delimitado e assim ele vai criar uma matriz com dois elementos. O primeiro elemento terá tudo acima e antes Hello. O segundo elemento terá tudo após o Olá, O Olá é eliminado porque se torna o er delimitado. Então vamos dar uma olhada nisso. Você diz que atualizar. Aqui temos os dois elementos na matriz. Cursos de programação sempre começam com um exemplo de espaço e, em seguida, mundo. Tudo bem. Isso não é um uso muito prático da divisão. Mostra como funciona, mas não é super prático. Ah, aplicação
frequente. Eu tenho de Split é pegar uma corda e dividi-lo em espaços para que eu possa trabalhar com. É cada palavra individual. Isso geralmente é feito quando eu estou trabalhando com cursos on-line que eu crio, e eu estou em um teste fazendo alguns testes, e isso requer que o usuário insira uma frase, e eu preciso verificar essa frase. É uma forma de o fazer. Então deixe-me ilustrar como isso seria feito. Vamos mudar a expressão regular para indicar um espaço a maneira como indicamos um espaço em uma expressão
regular é com uma barra s. Então, agora, quando executamos a divisão, ele vai criar uma matriz de todas as palavras em nossa string. Deixa-me dizer que salta para fora, refresca e aqui está o nosso raio. Consiste em todas as palavras,
Então, esses são os métodos que estão disponíveis para o uso de expressões regulares em JavaScript. Vamos revisá-los bem rápido. Então, primeiro no objeto Reg exe temos teste. Ele retorna True se o padrão é encontrado na pastagem ou false, se não for assim, teste é o tipo de método que usaríamos se estivéssemos realizando algum tipo de
avaliação condicional é exato. Lembre-se retorna uma matriz de correspondências e mostra o texto real nos elementos da matriz
,
o , texto que correspondeu ao padrão e,
em seguida, além disso, suas propriedades anexadas a essa matriz, o índice da correspondência e a string textual em que a correspondência foi executada. Então, esses são os dois métodos que estão disponíveis no objeto de expressão regular. Agora há 1/3 método porque objeto de expressão regular é um objeto. Há o método de duas strings, mas basicamente o que retorna é simplesmente uma string da sintaxe da expressão regular. Então seria exatamente assim se fizéssemos a corda em rejeitos, também. Não há nada de útil nisso, mas pensei em mencionar isso. Uma vez que está disponível agora, vamos olhar para os métodos que estão disponíveis em strings. Primeiro, temos correspondência. Agora lembre-se, isso é exatamente como exato nos objetos de expressão de rádio, então match retorna uma matriz de correspondências, e ele tem um índice que é atribuído à propriedade na matriz e o fluxo real que a correspondência foi realizada em Próximo temos pesquisa ,
Lembre-se, usamos pesquisa se queremos apenas obter o índice do fluxo de correspondência. Só nos preocupamos com o índice de onde aconteceu. O número do primeiro caractere dessa correspondência zero representaria o primeiro caractere
no fluxo. Então nós substituímos. Este é o método que é usado muito comum com expressões regulares, e o objetivo é substituir quaisquer correspondências que encontramos com a string que passamos. E, finalmente, podemos dividir uma string em uma matriz, e a divisão é baseada no padrão de expressão regular. Agora split pode ser usado com apenas texto simples que poderia se tornar o ER delimitado, mas também podemos usá-lo com uma expressão regular se quisermos. Então esses são os quatro métodos que estão disponíveis em strings. Tudo bem, vamos passar para o próximo tópico.
5. Entenda bandeiras de expressão regulares: antes de irmos mais longe, precisamos falar sobre sinalizadores de expressão regular. Estes ar às vezes chamado modificadores também. Essas bandeiras afetam a forma como um padrão foi correspondido. Vamos dar uma olhada em como nós os usamos e como eles afetam a correspondência de padrões. Então, primeiro, se quisermos especificar um sinalizador para um padrão de expressão regular, faremos isso após a barra. Se estamos usando o método construtor, ele vem como uma segunda string dentro dos parênteses, então ou após a última barra na definição do padrão ou é uma segunda string no príncipe vê. É assim que especificamos essas bandeiras. Não, aqui as três bandeiras mais comuns que você vai encontrar First off é global. A bandeira global diz ao padrão para corresponder globalmente, que
significa que ele vai encontrar todas as correspondências para esse padrão dentro da string. Se você não usar global, ele só encontra a primeira correspondência e, em seguida, ele pára para que global é freqüentemente usado. Outro que é usado com bastante frequência é a insensibilidade ao caso. A bandeira I diz a ele para fazer uma correspondência insensível a maiúsculas e minúsculas,
ou seja, caso não importa mais. Ele irá combinar letras maiúsculas e minúsculas do padrão. Agora, se você usar essas duas bandeiras juntos do que você teria um G I ou I G. De qualquer maneira, finalmente, 1/3 bandeira que é visto é uma correspondência multi-linha, e vamos lidar com a correspondência multi-linha quando olharmos no início e no final dos caracteres. Então aqui está o exemplo com que temos trabalhado agora em nossa primeira expressão regular, temos um espaço. Vamos em frente e modificar isso. Vamos procurar um S seguido de um espaço para que isto não corresponda. Mas isso seria e isso e assim por diante. Vamos em frente e mudar isso para corresponder. Guarde isso e vamos atualizar. Vamos ter uma única partida. É tudo o que temos. Um está aparecendo, e essa é a posição 18. Então é encontrar este ano, mas não está encontrando nenhum outro, e isso é porque não estamos usando bandeira global. Então, se eu adicionar um G, salve isso, volte e atualize novamente. Agora vemos que temos três fósforos. O raio tem três nele, então é isso que nossa bandeira global fará por nós. Agora, digamos que uma dessas bundas é era maiúscula, vamos dizer isso e ver o que conseguimos. Claro, agora nós só chegamos a para que ele não encontre a maiúscula s porque nós entramos um minúsculo s, nós poderíamos inserir uma atualização de maiúsculas e ele iria encontrar o único. Mas se quisermos pegar todos os bens e não nos importarmos com o caso,
então é aí que usaremos a bandeira do caso. Bandeira insensível. Guarde isso. E agora pegamos todos os três de novo. Agora eu quero mostrar a vocês como o método exato de expressão regular difere quando se trata da bandeira
global. Então deixe-me incomuns esta declaração de registro do console. Vou comentar este também, mas vou mudar isto para o mesmo ritmo. Expressão regular. Vá em frente e clemente que um fora e nós vamos salvar isso e vamos atualizar Sem notar o que nós
temos . Só temos uma entrada e este é o índice 18. Mas a segunda instrução log vai para o segundo índice de correspondência 25. Continuamos fazendo isso no mesmo código. Temos três aparecendo. A quarta declaração de registro do console retorna. Não, porque ele não encontrou uma correspondência, então ele mantém um índice de onde ele encontrou a correspondência. Na próxima vez que o método exato for invocado. Começa com esse índice. É assim que funciona. É assim que funciona o método exato da expressão regular. Então tome nota disso. Não é comum tirar vantagem desse pequeno recurso, mas se você precisar
dele, pode ser muito valioso. Tudo bem, vamos passar para o próximo tópico.
6. Usando o Regexpal: antes de aprofundarmos as expressões regulares, preciso falar sobre uma ferramenta que usaremos ao longo deste curso. Esta ferramenta é tão útil, tenho certeza que você continuará a usá-la. É chamado de projetos Powell agora rejeita. Pau fornece uma maneira para você testar rapidamente uma expressão regular. Vamos usá-lo ao longo do curso para aprender toda a sintaxe envolvida em
expressões regulares . No entanto, ainda
teremos exercícios que exigem que você resolva problemas de JavaScript. Mas à medida que experimentamos e aprendemos a sintaxe de expressões regulares, estaremos usando rejeitos, amigo. Então vamos dar uma olhada nisso. Aqui está o site. Você vai para os rejeitados de acesso, amigo. Deixe-me apenas mostrar-lhe algumas das partes aqui neste campo é onde você iria inserir sua expressão regular. Para baixo. Aqui é onde você coloca um anel de texto para ver se ele corresponde a algum dos itens dessa
string de texto . Como você pode ver por padrão, JavaScript é escolhido. Então essa é a sintaxe de expressão regular que será usada, que é muito comum para a maioria das expressões regulares no imposto. E você também tem a capacidade de adicionar bandeiras, observe como,
agora, a bandeira global foi escolhida porque ela aparece aqui neste preenchido onde nós inserimos a expressão regular, ele mostra que estamos inserindo como um literal, que é como você vai criá-los no script Java. Normalmente. Agora, outras partes desta página da Web você pode ver que há uma folha de truques. Isso é ótimo à medida que passamos e aprendemos a diferença de impostos com expressões regulares. Esta é uma ótima maneira de olhar para eles e lembrá-los. Você pode salvar uma expressão regular se encontrar uma que seja útil. E então há algumas expressões regulares de topo. Eles são comumente usados, e vamos dar uma olhada em alguns desses pouco mais tarde. Agora, uma coisa que eu quero saber antes de realmente experimentarmos isso mostrar como ele funciona é que eu gosto tanto
desta ferramenta que eu quero ter certeza de que você reconhece quem a desenvolveu, e você pode visitar outras ferramentas criadas por este desenvolvedor indo para dançar ferramentas dot com Este link aqui em baixo, ele tem um número de utilitários diferentes e coisas que ele criou, e este é provavelmente o que eu uso mais, mas há um monte de outros úteis lá fora também. Certo, então vamos ver como funciona o poder de rejeição. Deixe-me primeiro copiar uma declaração. Vou colá-lo neste cheio aqui. Então essa é a nossa string que vamos verificar se há uma correspondência. Agora, vamos em frente e digite algo que possamos combinar lá. Digitamos Hello e temos uma correspondência na primeira ocorrência. Nós não obtemos uma correspondência na segunda ocorrência porque lembre-se, isso é caracteres literais. E agora o H está em minúsculas. Então este é o único que tem um H em minúsculas agora. No entanto, se ativarmos a bandeira insensível a maiúsculas e minúsculas bem aqui, então combinamos ambos porque temos a bandeira I e a bandeira G tão global. Então combina com mais de um caso insensível. Então ignora o caso. Agora, se desligarmos global, obviamente que ele ainda era apenas igual ao 1º 1 Agora, se quisermos incluir a marca de pontuação, podemos Então caracteres literais não são apenas texto em si, mas pode ser outras coisas também. Agora, algumas dessas marcas de pontuação que você encontra no texto têm certos significados na sintaxe de
expressão regular e serão introduzi-los. Então, quando você se deparar com um desses, você precisará escapar deles, e falaremos sobre isso em um vídeo mais tarde. Agora deixe-me desligar a bandeira do caso e voltar a ligar a Global. E agora vamos apenas colocar em um jogo simples. Vamos ver quantos A's estão nesta declaração. Só um A. Vamos ver quantas facilidade. Ah, um monte desses. Então você pode ver como ele funciona e como ele destaca diferentes coisas que ele vai combinar agora. Isso se torna realmente útil à medida que entramos na sintaxe, que é para onde estamos indo a seguir. Mas projetos chave amigo abrir em uma de suas guias, porque vamos voltar para ele com freqüência. Tudo bem, vamos passar para o próximo tópico.
7. Entenda Metacharacters: nesta seção, vamos introduzir meta caracteres. Mas primeiro quero dizer algumas coisas sobre caracteres e como expressões regulares são processadas, embora muitos dos exemplos simples que usamos até agora sejam com palavras. Para pensar sobre expressões regulares corretamente, você deve pensar sobre padrões sendo construídos de caracteres individuais. Assim como as palavras são construídas a partir de caracteres individuais. Quando o motor procura uma correspondência, ele funciona através desta string um caractere de cada vez. À medida que encontra cada personagem, A determina se ele se encaixa no padrão ou não. Se o padrão consiste em vários caracteres, então ele deve determinar o primeiro caractere em um padrão
e, em seguida, o próximo caractere e assim por diante até encontrar uma correspondência ou determinar que não é uma correspondência. Se nenhuma correspondência for encontrada, então o mecanismo deve rebobinar a string para o próximo caractere e sequência e
começar tudo de novo. Então deixe-me ilustrar isso, porque eu acho que é uma coisa importante de entender ao lidar com expressões regulares. Então aqui temos uma expressão regular, simplesmente a palavra Olá, mas precisamos pensar nela como consistindo de cinco letras. Agora aqui está uma corda. Vamos ver como o motor processaria essa expressão regular. Então, primeiro começa na primeira letra e verifica se é Imagine. Sim, é o início deste padrão. E então temos uma combinação. Então vai para a segunda letra. Isso se encaixa? Sim, faz. Então vai para a terceira letra. Não, isso não se encaixa no padrão. E então ele tem que rebobinar. Já testou este. Mas tem que voltar para este segundo personagem aqui e um C verifica para ver. Isto é um jogo? Não, não
é. Então ele se move para o terceiro personagem. É um fósforo? Não. É um fósforo? Não. É um espaço para combinar? Não. Isto é um jogo? Sim. Então começa. Verificando a partida novamente. Uma segunda letra corresponde? Sim, é. A terceira letra corresponde. Sim, isso também combina. No entanto, a quarta letra não se encaixa no padrão. Então, ele rebobina de volta para este e verifica que nenhuma correspondência verificações que nenhuma correspondência cheques que não coincidem verificações que coincidem, então nós chegamos aqui. Adam está na Jess? Sim, sim, sim, sim, e isso se encaixa no padrão completo. E então temos uma correspondência, uma partida completa, e isso marca como uma correspondência. E se a bandeira global não é sábado, então pára nesse ponto. Se o sinalizador global é sat, então ele continuará se houver mais da string para avaliar. Então é assim que o mecanismo processa expressões regulares. procura de correspondências tem de retroceder quando está à procura de vários caracteres para se certificar que está a encontrar correspondências que possam ocorrer agora. Obviamente, não
chegaríamos muito longe se pudéssemos usar o valor literal de um personagem ao determinar um padrão. Então, se pudéssemos usar o que realmente digitamos é um padrão. Não há muita flexibilidade nisso. Portanto, expressões
regulares têm um número de caracteres, e eles são principalmente marcas de pontuação que são usados para representar outros caracteres, e estes foram chamados de caracteres meta. Muitos caracteres compõem grande parte da sintaxe de expressões regulares, e são esses meta caracteres que podem tornar expressões regulares confusas para olhar. Vamos primeiro dar uma olhada no que esses personagens médicos são. Aqui estão eles. E, como podem ver, são principalmente marcas de pontuação. Agora, esses ar, todos personagens separados e todos eles significam coisas diferentes em expressões regulares, e nós estaremos aprendendo o que cada um deles significa enquanto passamos por este curso. Então, como você pode imaginar, quando você olha para uma expressão regular que contém vários desses, ela aparece como algo estranho e difícil de interpretar até que você saiba o que os
caracteres médicos significam. Uma vez que você sabe o que os muitos caracteres significam, então você pode decidir por essa expressão regular e entender o padrão que ele está tentando identificar. Então estes são os caracteres meta. Vamos dar uma olhada no primeiro homem de caráter. Vamos aprender o curinga, então vamos para o próximo tópico.
8. Usando o cartão Wildcard: O primeiro meta caractere que vamos olhar é o curinga. O curinga é representado por um ponto. Agora, a maioria de todos está familiarizado com o conceito de um curinga. Pode ser qualquer coisa. Assim, quando um ponto é usado na expressão regular, ele representa qualquer caractere único, com exceção de alguns caracteres de controle como Nova Linha. Portanto, é importante lembrar que é um único caractere, não vários caracteres. Então, vejamos alguns exemplos. Deixe-me colar em uma cadeia de texto. Isto é o que será testando contra, e vamos em frente e colocar em uma expressão regular. Vamos usar um H do que um caractere curinga. E, em seguida, no literal T e com a bandeira global, podemos ver que ele corresponde a mais de uma instância dentro da string. H. A T é uma combinação, assim como H O T. Agora, como eu mencionei, ele pode representar a maioria de qualquer personagem. Então vamos olhar para H e, em seguida, uma pontuação marcar um NT. Sim, temos um fósforo lá. Vamos olhar também H Espaço t e temos um fósforo lá e eu noto, mesmo que estes dois jogos ar juntos notar que ele considera-os como dois
jogos separados . Você pode ver como eles são separados em poder de rejeição. Agora, como mencionado
, em Lee representa um único personagem. Então, se tivermos uma igreja 00T, não
teremos uma correspondência lá. Além disso, eu disse
, representa quase todos os personagens. Há alguns caracteres, caracteres não principais que ele corresponde,
por exemplo, por exemplo, que ele não corresponde,
por exemplo, por exemplo, um novo caractere de linha. E como podemos mostrar um novo caractere de linha? Bem, eu vou digitar uma idade press return e, em seguida, tipo de chá e aqueles que não temos uma combinação lá. Tecnicamente, há um personagem. Há um caractere não imprimível após essa idade, o que faz com que ele vá para uma nova linha, e não está combinando com isso. No entanto, existem alguns caracteres não imprimíveis que coincidem. Por exemplo, uma guia. Deixe-me copiar as letras H guia, chá e ritmo ALS em. Então esta é uma igreja com um caractere de tabulação e, em seguida, a letra T e que corresponde. Assim, o curinga representado por um ponto corresponde a quase qualquer caractere. Agora, o que você faria se você quisesse especificar que o padrão incluía um ponto, não um curinga, mas o personagem real. Um período. Como lidaria com isso? Bem, vamos dar uma olhada nisso a seguir.
9. Metacharacters: em um filme anterior, nós olhamos para uma grande longa lista de personagens médicos. Vamos dar uma olhada nessa lista mais uma vez, então aqui está. Agora, o que faremos se quisermos incluir um desses meta caracteres como parte do padrão
,
não o , que o caractere representa, mas seu valor literal? Como faríamos isso? Bem, podemos conseguir isso escapando do personagem. O caractere de barra invertida representa um caractere de escape Quando o usamos,
ele diz ao mecanismo que o caractere que segue a barra invertida deve ser usado como o caractere
literal, não o que ele pode representar. Vamos olhar para isso. Deixe-me copiar em outro fluxo. Então aqui está a corda que vamos usar para tentar encontrar uma correspondência. E agora se eu quiser definir um D? Seguiu-se um período imediatamente seguido de um período. Bem, digamos que eu entre nesse olhar. Temos dois fósforos. Nós obtemos este D, seguido de um espaço, e nós obtemos este D seguido de um ponto, e isso é porque o período neste caso é um curinga, e então ele representa qualquer personagem. E então estamos conseguindo uma combinação que não queremos. Não queremos este jogo aqui. Só queremos este. Então o que precisamos fazer é escapar desse personagem e ligar o motor. Lee procura seu valor literal, não o que ele representa. E então usamos uma barra para escapar lá. Agora só combinamos o d com o período seguinte, que é o que realmente queríamos realizar agora. Como você sabe quando você deve escapar de um personagem? Bem, se você tem uma folha de truques, você pode ver alguns dos caracteres que são usados dentro de expressões regulares. Mas você pode nem sempre ter isso ao seu lado. Por exemplo, qualquer caractere mas aceitar Nova Linha está nos dizendo o que o DOT representa. Então, quando vemos isso e queremos usar seu valor literal, sabemos que temos que escapar dele. Bem, e se não o fizermos? Não. Ou não temos certeza se temos algum sinal de pontuação, mas não temos certeza se devemos escapar ou não. Bem, não
vai doer escapar de nenhum personagem, mesmo que não precisemos. O caractere de barra invertida simplesmente se comunica com o mecanismo. Use o valor literal, literal para o personagem que se segue, e o motor fará isso agora. E se estivéssemos procurando uma barra invertida em nosso padrão
aqui embaixo ? Queríamos ver uma carta seguida de uma barra invertida. Bem, é o mesmo princípio. Se você quiser usar um valor literal de uma barra invertida, você simplesmente escapá-lo. Então o que você acaba com é a barra invertida de caracteres juntos. E lá vemos, temos o nosso fósforo. Assim, como você deseja usar o valor literal de um caractere de matéria em sua expressão regular, simplesmente escape dele usando um caractere de barra invertida. Tudo bem, vamos passar para o próximo tópico.
10. Personagens de controle correspondente: em um filme anterior, analisamos a correspondência de um caractere de tabulação, usando o caractere meta curinga. O período. Bem, o que faríamos se quiséssemos corresponder ao valor literal da guia? O curinga combinaria com ele porque combina com quase todos os personagens. Mas e se quiséssemos especificar uma guia? Bem, conduzimos isto com um carácter de controlo. Vamos dar uma olhada em alguns caracteres de controle. A barra traseira T representa uma guia. A barra traseira V vertical guia barra invertida e nova barra invertida linha são transportados retorno. Sem notar que cada um desses caracteres de controle usou o caractere Xscape, a barra invertida, para representar outra coisa. Então, quando usamos uma barra invertida com uma marca de pontuação em indica, ele deve ser o valor literal desse caractere. O valor literal do sinal de pontuação quando o usamos com um caractere, neste caso é uma TV e ela pode representar outra coisa, e podemos ver isso com esses caracteres de controle, como ele representa outra coisa. Então vamos olhar para um exemplo de como usaríamos esses caracteres de controle aqui na minha
string de teste . Eu tenho várias versões da letra h seguida de algo e, em seguida, a letra t. No primeiro caso, é hlt. Este é H tab T H I T h carro Retorno T ou New T. Então, se fizemos o curinga como fizemos anteriormente, ele iria combinar três desses. Ele não corresponde à nova linha porque o caractere curinga não pode corresponder a um novo caractere de linha . Mas e se o que eu quisesse para Onley pegar o que tinha uma conta entre ele? Bem, eu conduzo isso com o caractere de controle para torneira, que é barra traseira t e lá temos uma correspondência. Que tal se eu quisesse pegar o H seguido de um novo caractere seguido de um T? Bem, eu poderia fazer isso com o novo personagem de controle de mentiras e combina com isso agora. Como é que eu sei? Como você saberia se usar nova linha ou retorno transportado ou qual combinação deles usam e qual é a diferença? Enquanto nova linha e transportado você voltar para os dias da máquina de escrever e eles carregaram retorno tradicionalmente é destinado a ir para a frente da linha. nova linha é que você pulou para baixo uma linha agora, que você usa em sua expressão regular, depende do sistema que você está usando. Por exemplo, estou em um Mac, e ele é um Mac mais recente, e assim a próxima linha é representada com o novo caractere de linha. No entanto, em um sistema de janelas, ele pode ser representado pelo retorno transportado e o novo caractere de linha juntos, modo que uma barra invertida são final barra invertida. Então, o que você usou para representar uma nova linha ou um retorno de carro depende do sistema que você está trabalhando. E então você pode apenas precisar testar essa expressão regular para ter certeza de que você está recebendo o que você precisa. E em toda a realidade, você realmente precisa estar testando qualquer expressão regular para ter certeza de que ela está fazendo o que você quer ela faça. Então, mais uma coisa a mencionar sobre o caractere de nova linha. Isso é o mesmo que um personagem de alimentação mentiroso. Às vezes é falado sobre isso, então os caracteres de controle permitem que você crie uma expressão regular que corresponda ao
valor literal de alguns caracteres não imprimíveis, como guias carregadas com linha Return New. Tudo bem, vamos passar para o próximo tópico
11. Iniciar com exercício 1: chegamos ao primeiro exercício JavaScript agora para cada um dos exercícios. Neste curso, estaremos usando o navegador como o dedo do motor JavaScript. Lidar com nosso código. Se você estiver mais confortável com a nota ou outra solução, sinta-se à vontade para usar sua solução favorita. Para fazer os exercícios. Exercício alcance. Você receberá um arquivo HTML,
um arquivo CSS, um arquivo de script Java. Digite seu código no arquivo de script Java e, em seguida, abra o arquivo HTML no navegador para ver se você o completou corretamente para visualizar os resultados do código. Você é bem-vindo para exibi-lo na página HTML, mas na maioria dos casos nós apenas registramos os resultados finais para o cônsul apenas para mantê-lo simples. Então vamos olhar para o primeiro exercício. Aqui está o arquivo de script Java para o primeiro exercício e o arquivo HTML as instruções para o exercício ou na parte superior do arquivo de script Java que indica o uso da matriz fornecida necessária. Aqui mesmo, esta matriz de números de telefone cria uma segunda matriz que Onley inclui os números com um código de área
801. Agora, para aqueles que podem não estar familiarizados com códigos de área. O código de área é basicamente os primeiros 3 números desse número de telefone. Então o que estamos vendo lá que eu destaquei. Então, tire alguns minutos para descobrir isso. Tanto o script Java quanto a expressão regular que você usará com o script Java para resolver isso. E quando estiver pronto, poderá rever a solução.
12. Acabamento de exercício 1: Tudo bem, vamos dar uma olhada na solução agora. Estes primeiros exercícios não serão muito complexos porque ainda não cobrimos
muita expressão regular,
expressão, expressão, sintaxe. E assim, os dados que estou fornecendo, estou facilitando muito a identificação ou a localização de correspondências. E esse é o caso deste exercício. Agora todos mostram duas maneiras de fazer isso. Você pode ter escolhido fazer isso com o método de filtro de um aumento, ou você pode optar por fazê-lo com um loop, e eu vou olhar para ambos. Mas primeiro, vamos olhar para a expressão regular que iríamos criar. Então eu vou declarar uma variável que irá conter essa expressão regular. Agora, se estamos tentando igualar os 3 primeiros números que são 801801 obviamente precisaríamos dos valores
literais para esses. Não queremos usar um curinga porque isso pode acabar sendo outra coisa. Mas, no entanto, se esta é a única parte de nossa expressão regular, então poderíamos combinar outros lugares dentro desses números. Por exemplo, aqui está um da OTAN que poderíamos igualar, e não são os primeiros 3 números e outro aqui que poderíamos igualar. Esses não são os 3 primeiros números, e isso criaria uma correspondência nesse número, mesmo que o código de área seja algo diferente. Então há maneiras de lidar com isso e expressões regulares. Mas com o que aprendemos até agora, simplesmente
precisamos adicionar outro personagem. Com a forma como os dados são inseridos. Podemos ver que adicionando um hífen, então ele só vai pegar aqueles que têm o 801 no início. Agora, se tivéssemos alguns números onde o outro estava no meio, então teríamos um problema porque há também um hífen depois disso e isso poderia criar alguns problemas. E como eu disse, há maneiras de lidar com isso com expressões regulares, e vamos aprendê-las ao longo do curso. Mas vamos em frente e acabar com isso. Então aqui estou eu expressão regular. Agora, como eu mencionei, minha primeira tentativa será usar o método de filtro de um aumento. Se você não estiver familiarizado com isso, então você pode aprender um pouco algo lá também, então eu estou criando uma nova variável de matriz e definindo-a igual a completo entorpecimento o
filtro de pontos da matriz é um método em um aumento, então o maneira que eu acessá-lo está usando filtro got e, em seguida, filtro é, ah, função de ordem
superior. Então o que isso significa é que precisamos passar em uma função que irá dizer como processar a matriz . Então, basicamente, um filtro vai fazer é ele vai passar por cada elemento na matriz. Ele irá retornar elementos com base no que entramos em nossa função que passamos em e esses elementos retornados virá a nova matriz. Então, basicamente, a função que passamos precisa voltar à culpa dela. Se retorna true para um elemento, esse elemento será passado na nova matriz. Ele retorna falha. Não será assim. Eis o que vou fazer. Desde que eu estou usando o método de filtro de matrizes, eu vou usar uma função de seta. Então, aqui está. Aqui está uma expressão regular. Vou usar o método de teste do objeto de expressão regular porque isso retorna uma falha mais verdadeira. Se há uma correspondência agora, cada vez que iteramos através de sua matriz estavam passando no elemento, e isso é colocado na variável L M. E então é nisso que eu quero fazer o teste. E lá vamos nós. Essa é a solução. Deixe-me ir em frente e dizer que vamos verificar. Vou copiar o caminho do arquivo, sair, acelerar isso. E então eu vou abrir o console e apenas abrir essa nova variável de array só para ver se nós temos o que precisamos. E com certeza, há cinco números e todos eles têm um 801 no início. Não há nenhum com o 435 que era o outro código de área que incluímos. Então essa é uma solução usando o método de filtro e a que eu prefiro, obviamente muito mais simples de inserir. Mas vamos ver como faríamos isso com um loop. Então, para isso, eu vou declarar a nova matriz, variável aqui em cima, disse igual a uma matriz vazia. E então vamos usar um loop for. É um ciclo através da matriz. Vamos passar pelo loop enquanto eu é menor que o comprimento da matriz. E então aqui está o que vamos fazer dentro do loop. Vamos usar uma instrução if para verificar se o teste de expressão regular
mais uma vez vou usar o mesmo método de teste porque isso retorna uma turnê de falhas, e o que estamos testando é entorpecimento de telefone. E então eu especifico qual elemento, Ray eu quero testar. E se isso for verdade, então nós simplesmente fazemos uma nova taxa para cima, empurrar e empurrar esse elemento para o seu A como este tudo certo, isso vai resolver o problema para nós também. Vamos testar para ter certeza de que está funcionando. Então eu digo que atualizar tipo Marais, e com certeza, obtemos os mesmos resultados exatos. Lembrem-se, esta é a parte crítica do que estamos ensinando neste curso. Mas se você aprendeu algo com o outro JavaScript, então ótimo, isso é um bônus adicional. Mas isso é o que importa. Certifique-se de que introduziu uma expressão regular de 801 e, em seguida, um hífen. Tudo bem, vamos passar para a próxima seção
13. Como usar conjuntos de personagens: nesta seção, vamos falar sobre conjuntos de caracteres, formas de encontrar correspondências usando um grupo de caracteres. Agora, permitam-me que comece com um exemplo simples. Digamos que você está tentando combinar a palavra cinza em algum texto. Bem, ótimo. Pode ser soletrado de duas maneiras, seja com um A ou um
E, e devemos explicar os dois. Então precisamos de uma maneira de criar uma correspondência que possa ser um personagem de um grupo de personagens . Não, isso é chamado de conjunto de caracteres. Então aqui temos uma expressão regular e no lugar do A ou do agora eu tenho um espaço . Então, o que colocamos lá? O que é que define um conjunto de caracteres? Bem, podemos especificar um grupo de caracteres usando colchetes, então seria algo parecido com isso aqui, os colchetes. E então nós temos um A em qualquer dentro dele, e isso indica que corresponde em Lee, um desses personagens dentro deste conjunto de caracteres. Ele corresponde ao caractere literal fora do conjunto de caracteres dentro. Combina com pelo menos um desses, então em um ou um E poderia produzir um fósforo. Então vamos dar uma olhada neste exemplo exato em rejeitos Pau. E então vamos olhar para alguns outros exemplos com conjuntos de caracteres também. Tudo bem, aqui temos, ah linha ataques para fazer o contorno para o cinza quadrado e a sensação para a graça do círculo. Então, duas palavras cinzentas escreveram de forma diferente. Vamos ver como encontraríamos um par para eles. Então entramos no G R. e obviamente ele agarra o G R. E então começamos nosso personagem, certamente entrando em um E e então quando as roupas são colchetes,
então, finalmente, por quê? Então estamos combinando ambos o cinza dentro de A e o cinza com qualquer porque
temos a bandeira global ob. Obviamente, se desligarmos isso, só corresponderíamos ao 1º 1 Agora. O que aconteceria se esta palavra aqui estamos soletrados com um A qualquer Bem, então ele não encontrar uma correspondência porque este personagem disse está dizendo correspondência em Lee, um dos personagens neste grupo. Então é um grupo de personagens e você deve encontrar um par para ele. Vejamos alguns outros exemplos que ajudam a ilustrar isso. Então primeiro, deixe-me remover tudo isso e vamos inserir um conjunto de caracteres das letras A, B, C e D. E isso é tudo. Então, portanto, caracteres dentro do conjunto de caracteres, mas note que ele está apenas combinando com um para tudo que ele encontra cada vez que ele encontra um B, um
B,um C ou um D. Ele considera um coincidir. Agora algo mais que considere que podemos fazer mais de um conjunto de caracteres juntos. Então, por exemplo, poderíamos fazer um segundo conjunto de caracteres para um segundo caractere e este. Vou colocar um espaço e eu e encerrar isso agora estamos combinando apenas dois lugares. Este D tem um espaço depois dele. Este C tem um olho depois, e por isso está combinando com os dois. Então nós temos um personagem deste grupo e, em seguida, um personagem deste grupo. Vejao que aconteceria se adicionássemos e porque há muita facilidade aqui. Veja Recebemos um monte de partidas, especialmente por causa do espaço que temos no segundo conjunto de caracteres. Agora podemos fazer mais do que dois. Como eu mencionei você pode agrupar, você pode montar vários conjuntos de caracteres. Então, digamos que não estamos em uma era aqui em cima, são ou em idade, devo dizer. Então você pode ver que os jogos estavam recebendo um monte da última parte da palavra que quando um espaço vem depois dele, então nós temos um aqui. Onde está E e depois um espaço agora? Até agora, só
tenho feito cartas, mas isso é verdade para qualquer personagem. Então, por exemplo, digamos que eu queria encontrar um um dois um três ou quatro. Agora, se eu fosse entrar 1234 notar que são quatro jogos diferentes. Isso não é uma combinação para todos eles, porque mais uma vez, é pegar um personagem daquele conjunto de caracteres. E então quatro diferentes fósforos bem ali. Agora, olhando para este 1234 faz você pensar, o que poderíamos fazer? Arranjado. Temos dedo do pé. Se queremos um intervalo, entre um e quatro, temos que digitar cada número? Bem, isso é o que vamos olhar no próximo tópico. Uma maneira mais simples de entrar em um intervalo como esse Mas antes de deixarmos este tópico, eu preciso mencionar algo que é muito importante sobre conjuntos de caracteres. E isso é que os personagens Mata não atuam como muitos personagens dentro das chaves quadradas então dentro de um personagem disse que eles não agem como caracteres meta. Eles agem como o personagem que eles são agora. Há uma pequena excepção a isso, mas trataremos disso no próximo tópico. Então, por exemplo, aprendemos sobre o curinga, o período, que é um personagem médico. Vamos ver o que obteríamos se usássemos isso como parte dessa expressão regular. Então eu vou voltar para o nosso exemplo cinza e. Dentro do conjunto de caracteres do que um porquê. E agora vou criar um segundo conjunto de caracteres. Este vai ter um espaço e um ponto agora notar. Está combinando com ambos porque podemos igualar um espaço ou podemos igualar um ponto. Agora, este período não está agindo como um curinga. Se fosse um curinga, poderia corresponder a qualquer personagem depois do porquê. Então vamos apenas provar que colocando qualquer outro personagem depois disso, por que aqui e notar que perdemos a partida nesse ponto porque s não está neste conjunto de caracteres . Temos um espaço, e temos um período que não é um curinga. Porque dentro das chaves quadradas. Então isso pode fazer com que você pergunte. Bem, se fizermos em um curinga dentro de um conjunto de personagens? Bem, basicamente, você não iria querer fazer isso. Ele vai contra a idéia de conjuntos de caracteres onde o conjunto de caracteres sua especificação de um grupo
específico de caracteres. E você quer combinar com um desses personagens desse grupo. Se você quiser usar um curinga,
realmente, realmente, você deve apenas usar fora de um conjunto de caracteres. Tudo bem, então vamos passar para o próximo tópico.
14. Como definir um intervalo em um conjunto de personagens: no tópico anterior, olhamos para um conjunto de caracteres que tinha os números 123 e quatro, e tivemos que inserir cada número por si só. Enquanto uma maneira mais simples de fazer isso é usar um intervalo agora, aqui está como nós digitaríamos a mesma coisa em um aviso de intervalo. Usamos o caractere hífen entre o número inicial e o número final. E basicamente, o que isso especifica é que este conjunto de caracteres pode ser um, um dois, um três ou um quatro. Inclui todos os quatro números. Agora observe algo sobre este exemplo. O hífen está agindo como um personagem médico, não como ele mesmo. No último tópico, mencionamos que o Medicare não funciona. Os meta caracteres da América estão dentro de um conjunto de caracteres? E usamos o caractere curinga, o ponto, para ilustrar que bem, uma exceção é o hífen em um conjunto de caracteres. Ah, hífen especifica um intervalo. Então, se você quiser incluir ah hífen como parte do conjunto de caracteres, talvez
precisemos escapar assim. Agora eu digo que pode porque se o hífen está em uma posição onde não seria confundido como um alcance, então não há necessidade de escapar dele. Então, neste exemplo, nós realmente poderíamos fazer sem a fuga. Vai funcionar com ele, mas podemos deixá-lo de fora porque não há chance de confundi-lo com um alcance, porque basicamente, temos ah, hífen, um espaço e um ponto. Agora, algo mais para estar ciente com intervalos e que é que o intervalo não é necessário que Onley
consista em números. Você conduz a um leque de letras também. Aqui está um exemplo disso. Usamos um exemplo semelhante no tópico anterior, onde tivemos que inserir a, B, C, D e E para designar se queríamos um desses caracteres. Bem, isso é a mesma coisa, mas ele usa um alcance. Ele sabe incluir todas as letras entre A e E quando usamos o hífen. Vamos saltar para Reg exe pal e fazer alguns exemplos. Então aqui eu tenho uma frase simples. Já tentei quatro ou cinco vezes, mas vou tentar de novo. Vamos apenas brincar com intervalos dentro de conjuntos de caracteres. Então vamos começar com um conjunto de caracteres e vamos 127 nesse conjunto de caracteres e ver o que combinamos com o conjunto de atributos globais, nós combinamos ambos os quatro e os cinco agora. Obviamente, se baixarmos isto para quatro, vamos igualar os quatro. Nós combinaríamos com os cinco. Está fora desse alcance agora. Repara bem porque este é um conjunto de caracteres. Nós só combinamos uma única vez. Se este fosse o número 42, por exemplo, seriam duas correspondências separadas porque ele está procurando um único caractere nessa correspondência. Se quiséssemos mais de um personagem, então faríamos um personagem, um segundo conjunto de caracteres como este. Agora apenas o 42 é combinado porque o 42 é a coisa Onley que consiste em dois números entre um e seis direita juntos e, portanto, nós obtemos essa partida. Agora deixe-me remover o segundo conjunto de caracteres. Vamos adicionar alguns caracteres adicionais dentro disso. Digamos que queríamos encontrar um através de Z e sabe como isso combina com tudo porque estamos procurando um de um a seis ou as letras de um a Z e assim sobre tudo sobre tudo corresponde a que, com exceção da maiúscula também
podemos fazer uma variedade de caracteres maiúsculos, e havia correspondência quase tudo. Se saíssemos do espaço, pegaríamos o espaço e poderíamos adicionar um hífen e não temos que escapar dele porque
não está em um lugar onde seria confuso como um alcance. Agora vamos olhar para um exemplo de onde ele pode ser confuso não é realmente como um intervalo. Então vamos dizer que tivemos um para e nós também queríamos combinar Ah, hífen. E depois queríamos igualar um cinco. Veremos o que acontece lá Agora vê que isto está arranjado, por
isso está à espera de fazer parte disso também. Então, se quiséssemos mudar isso, então ele está apenas procurando o hífen, um 12-5 então nós poderíamos escapar dele. E lá temos o tipo de correspondência que procuramos. Tudo bem, vamos fazer outra correspondência que consiste em apenas letras. Vamos fazer um conjunto de caracteres de letras maiúsculas, a I encontramos para lá e, em seguida, letras minúsculas A a I. E, claro, não temos correspondência porque não há caracteres maiúsculos que ar, seguido por um caractere minúsculo. Agora, se nós estendemos este intervalo ambos estes intervalos aqui, vamos para Z. Estenda este muito bem e você pode ver que temos o th porque agora que T está incluído
neste primeiro conjunto de caracteres. O H está incluído no segundo conjunto de caracteres. Tudo bem, digamos que queríamos pegar toda a pontuação lá dentro. Poderíamos fazer isso em um único conjunto de caracteres também. Podemos fazer o hífen sem escapar dele porque não há chance de confundir isso com um alcance porque está no início. Podemos fazer uma vírgula e enfraquecer, fazer um ponto. Não precisamos escapar do período porque está dentro do conjunto de um personagem. E lá combina com todos esses. Muito bem, deixa-me mudar o texto que está aqui em baixo. Digamos que estivéssemos procurando em um arquivo de log ou algo assim por exceções. Vamos colocar muito disso agora. Como poderíamos igualar as exceções? Bem, vamos ver como podemos fazer isso. E usaremos de conjuntosde
caracteres para fazer isso. Então, primeiro, eles começam dentro de um zero nos pescoços. Estas excepções em particular estavam à procura. E então se quiséssemos identificar um código específico, digamos que quiséssemos identificar algo, começa com as letras A a F ou os números de zero a nove e depois seguimos com isso também. Então vamos fazer um conjunto de caracteres que faria isso de zero a nove nos daria os números e, em seguida, metade. E então, quando perto, esse conjunto de caracteres, fazemos um segundo conjunto de caracteres de zero a nove a F e fechamos esse. E então temos uma correspondência com essa exceção. Então, mais uma vez lembre-se, há dois conjuntos de caracteres aqui. Cada conjunto de caracteres corresponde a um único caractere,
portanto, o caractere que este corresponde pode ser zero qualquer número entre zero e nove e qualquer letra maiúscula entre um e depois e a mesma coisa com o segundo conjunto de caracteres. E então nós temos esses dois personagens aqui. Zero pescoços que colocamos na frente da expressão regular faz com que a partida para todos os quatro. Agora há mais uma coisa que quero cobrir antes de concluirmos este tópico. Eu mudei a string, que está aqui em rejeições, amigo e basicamente contém uma pergunta que eu quero abordar. Como capturamos os números? 13 a 20, por exemplo? Bem, vamos ver o que acontece se colocarmos um caractere configurado aqui que contém 10 a 20 e em seguida, fechar esse conjunto de caracteres. Veja o que combinamos. Nós não combinamos números inteiros, como o 13 ou o 20. Combinamos números individuais. Portanto, tenha em mente e lembre-se de que são caracteres individuais que foram especificando neste conjunto de
caracteres. E assim, quando especificamos um intervalo, ele só pode ser organizado entre caracteres individuais, não entre um 10, por exemplo, dois dígitos e outro caractere de dois dígitos. A maneira como isso está sendo lido é que estamos procurando um um um um zero, um um ou dois ou um zero, e então realmente nos repetindo. E assim ele encontra um. Ele encontra um dois, e ele encontra um 03 partidas separadas. Então, quando você está fazendo expressões regulares, você tem que pensar em cada caractere como um caractere individual. Você não pode pensar em 13 como uma única entidade porque ele é visto como um um e um três, não como 13 e Então é um pouco de mudança sobre como você pensa sobre números se você está lidando com números em uma expressão regular, e eu queria apontar que antes de concluirmos esta seção. Tudo bem, vamos passar para o próximo tópico.
15. Excluindo um conjunto de personagens: Às vezes, podemos querer usar um conjunto de caracteres para especificar um grupo de caracteres que não
queremos incluir na correspondência. Podemos nos referir a isso como caracteres excluídos ou negados. Para excluir um grupo de caracteres. Usamos o símbolo de cenoura como mostrado aqui no título. Agora, o símbolo de cenoura é um personagem de matéria para personagem diz, Assim como o hífen e como o hífen, podemos querer escapar se quisermos incluí-lo como uma parte do conjunto, No entanto, a única vez que temos para escapar é se ele vem no início do conjunto de caracteres. Isso ocorre porque usamos a cenoura no início de um conjunto de caracteres para indicar negação ou exclusão desses caracteres. Então, vejamos alguns exemplos. Aqui está um exemplo que estávamos usando no tópico anterior. Agora, digamos, em vez de procurar uma exceção, que começa com zero a nove a a AF, e o segundo caractere também é visto com um nove ou uma economia. Digamos que o primeiro personagem não é um desses, enquanto a maneira que faríamos isso é simplesmente colocar um símbolo de cenoura e este é um símbolo que geralmente
está acima do seis. Colocamos isso na frente de todo o conjunto de personagens. Então, basicamente está dizendo Matt zero Match Acts e, em seguida, o próximo personagem não pode ser um zero a nove ou um oito a F. Se for, então não é uma correspondência e é por isso que não estamos recebendo uma correspondência aqui agora. No entanto, se mudarmos isso para dizer algo mais um G, então teremos essa correspondência. Mas se colocarmos uma cenoura para este agora estamos negando isso. Então, o segundo personagem que segue o G também deve corresponder e não acontece porque é um desses personagens incluídos aqui e com a cenoura estavam dizendo, Nós não queremos combinar um desses personagens. Então, digamos que tínhamos um monte de letras, quase todo o alfabeto e tínhamos um conjunto de caracteres um cruzi. Obviamente combinamos cada um desses personagens e suas partidas individuais. Podemos ver que à medida que desligamos o global, então só combinamos com o primeiro. Agora a cenoura vai fazer o oposto disso. Não há aviso onde colocamos a cenoura. Ele vai dentro do conjunto de caracteres, e é o primeiro caractere que é uma parte desse conjunto de caracteres. E lá não temos mais uma correspondência porque está negando tudo o que está listado aqui. Agora. Se quiséssemos incluir a cenoura como parte do nosso conjunto de personagens e é o primeiro personagem que
listamos, precisaríamos escapar assim. Agora ele não age. É como uma exclusão? Na verdade, se escrevermos uma cenoura aqui, corresponde agora. Poderíamos também remover essa fuga, e a única coisa que combina é a cenoura, porque estamos dizendo qualquer coisa menos um a Z. Então não está combinando com essa cenoura porque o símbolo da cenoura está aqui. Está combinando porque está dizendo qualquer personagem diferente de um a Z. É por isso
que temos o jogo agora. Se removermos isto agora, podemos ver que corresponde a todas as letras. Não combina com a cenoura, mas também podemos colocar a cenoura aqui no final. E como não é o primeiro caractere de cuidado no conjunto de caracteres, não
precisamos escapar dele, então às vezes queremos usar conjuntos de caracteres para especificar um caractere que não queremos incluir em uma correspondência. E fazemos isso dentro do personagem do portão, a cenoura e que é sempre colocado na frente do conjunto de caracteres. Tudo bem, vamos passar para o próximo tópico.
16. Escapar de Metacharacters em um conjunto de personagens: durante os últimos tópicos. Eu mencionei que quando você está criando conjuntos de caracteres, não
há necessidade de escapar meta caracteres com algumas exceções. Portanto, há algumas exceções a essa regra agora. Mencionamos duas dessas exceções, o hífen e o símbolo da cenoura. O hífen designa o intervalo. A cenoura nega personagens. Neste tópico. Eu quero tirar alguns minutos para identificar todos os caracteres de matéria que você pode precisar para escapar dentro de conjuntos de caracteres. Então, estes foram os que você pode precisar para escapar, não aqueles que você não precisa escapar. Basicamente, a regra geral está dentro de um conjunto de caracteres. Você geralmente não precisa escapar de personagens maníacos. Agora há um total de quatro que você pode precisar para escapar. Então primeiro hífen que é usado para o alcance e lembre-se do motivo pelo qual você pode precisar escapar. Isto é, se é óbvio que o hífen está sendo usado para um intervalo, então não há necessidade de escapar símbolo cenouras também. Ele nega esses personagens. Se estiver no início do conjunto de caracteres, há eles precisam escapar porque no início do conjunto de caracteres é onde ele funcionou como um caractere de matéria, indicando que você está procurando por uma correspondência que não inclua estes personagens. Se ele estiver em qualquer outro lugar do conjunto de caracteres, não
há necessidade de escapar agora em ambos os casos, se você não quiser tentar, lembre-se de quando você pode não precisar escapar dele. Só que sempre esta fuga que funciona. Não há problema com isso. Agora há mais duas coisas. Personagens Agora. Estes ao lado de você precisará escapar se você alguma vez usá-los dentro de um conjunto de caracteres primeiro . Este símbolo hash é usado para caracteres de escape, então se você quiser usar esse símbolo dentro de seus caracteres que você precisa para escapar para que você insira dois deles, e inserindo ambos juntos, isso indica que você deseja usar esse caractere real em seu conjunto de caracteres. O quarto caractere é o colchete direito. Este caractere, quando visto, indica que é o fim do conjunto de caracteres, um caractere dito está entre colchetes. Então, se ele vê este colchete direito, ele acha que o conjunto de caracteres está terminado. Mas se você pretende que ser um dos personagens é uma parte desse grupo. Então você precisa se certificar de que você escapa. Então todos os quatro desses personagens você pode simplesmente ir em frente e escapar sempre que quiser usar os personagens reais, uma parte de um personagem está fora, como mencionado, o símbolo hífen e cenoura. Aqueles que você pode obter sem escapar deles se eles estão localizados em certos lugares dentro do conjunto de
caracteres. Tudo bem, vamos passar para o próximo tópico.
17. Usando Shorthand para conjuntos de personagens: às vezes com expressões regulares. Há mais de uma maneira de especificar um padrão neste tópico. Vamos olhar para mãos curtas que estão disponíveis para conjuntos de caracteres. Muitas vezes você vai ver essas mãos curtas em STAD deste conjunto de personagens padrão que temos falado. Agora há mãos curtas disponíveis para ambos os conjuntos de caracteres que incluem e aqueles conjunto de
caracteres em um portão ou excluir caracteres. Vamos primeiro olhar para o conjunto de caracteres inclusivo mãos curtas, então temos três deles. O 1º 1 é o caractere de Escape e, em seguida, o D maiúsculas
e minúsculas, e que representa dígitos. E assim você pode ver os caracteres equivalentes que ao lado dele conjunto de caracteres A. Um intervalo de zero a nove seria igual ao escape abreviado D. Então nós também temos a palavra abreviação. Agora, uma palavra na abreviação representa um pouco. Você pode ver o conjunto de caracteres de exemplo ao lado dele representa todos os caracteres maiúsculas e minúsculas. Todos os números e, em seguida, também o caractere sublinhado pode não ser capaz de ver isso, mas no final aqui temos um caractere sublinhado. Aqueles ar, todos considerados caracteres de palavras. Agora o hífen não é apenas o sublinhado. Por alguma razão, é considerado um caractere de palavra. Então, finalmente, a terceira abreviação que temos é o espaço, o espaço em branco abreviado,
e basicamente isso representa um espaço em branco, uma guia, um retorno de carro ou uma nova alimentação de linha. Ele pode representar qualquer um desses caracteres. Isso é o que a fuga representa. Não, antes de olharmos para os personagens de negação, Lutz, experimente alguns destes em rejeitos, amigo. Então eu tenho duas linhas, e isso foi importante. Eu queria a mim. Queria mostrar que tinha uma segunda linha. Incluí personagens. Incluí algumas guias que incluí no Sublinhado. Eu incluí números, e há alguns outros personagens também. Então vamos primeiro tentar esta abreviação para dígitos. Como você provavelmente adivinhou, isso corresponde a cada número, que está nestas duas linhas. 11 partidas no total. Então, cinco cabelos. Cinco. Aqui. Ninguém aqui. Mais uma vez, temos nossa bandeira global ligada, e por isso está combinando com todas elas. Agora vamos dar uma olhada no que a palavra caractere irá corresponder. A maioria. Tudo é combinado com a palavra caractere. Temos todas as letras maiúsculas e minúsculas. Temos o sublinhado aqui. Temos os dígitos de novo. Sua correspondência com uma parte da palavra caractere. Tudo isso é compatível agora. Se substituirmos isso pelo espaço, o espaço em branco, então você pode ver o que combinamos com cada lugar há um espaço entre palavras. Conseguimos uma correspondência. Aqui estão três guias que as primeiras abas não são exibidas tanto quanto as outras duas, mas ainda é uma guia. E assim ele está combinando com aqueles outro espaço lá. Não foi notado. Nós indicamos aqui em cima. 14 fósforos. Agora olhe. 123456789 10 11 12 13 Onley 13 ou mostrando enquanto a partida 14 é esta carruagem retorno deitado pés área. É aí que está criando outro jogo. Não aparece em rejeitos, amigo, não é uma forma de mostrar,
mas está criando essa partida, e eu só queria dizer isso. Mencionei que também são mãos curtas para os conjuntos de personagens de negação. Então vamos dar uma olhada naqueles Isso usa uma maiúscula profunda, então todas as mãos curtas para a negação é a maiúscula. Equivalente. Assim, para
dígitos, seria maiúsculas d palavras maiúsculas w espaços em branco maiúsculas s. Então, como podemos ver para a letra maiúscula D, temos o nome negar caractere, a cenoura na frente e, em seguida, zero através nove do que um portão aqui, letras
maiúsculas e minúsculas, números e o sublinhado do que um portão com guia espacial linha de retorno de carro, pés. Certo, vamos dar uma olhada nos rejeitados, amigo também. Então agora primeiro pense sobre isso. É preciso um processo de pensamento um pouco diferente quando estamos lidando com esses conjuntos de
personagens negados e os Hatton curtos, que fazem exatamente a mesma coisa. O que vamos indicar é que queremos igualar tudo o que não é um desses. Então, se colocarmos em maiúsculas D aqui, combina com
tudo, exceto os números percebem que está combinando com o espaço em branco. Agora, se colocarmos um W maiúsculo, está combinando com tudo, exceto os números das letras e o entender e o sublinhado. Veja os sublinhados não correspondidos aqui. Todos os outros personagens são a impressão aberta e o espaço em branco, a aba, etc. O período aqui. Todos eles são combinados porque é tudo menos isso. E então, finalmente, se fizermos uma bunda maiúscula, vemos que combina com tudo menos com os caracteres de espaços em branco. Então, esses caracteres abreviados para conjuntos de caracteres e aqueles ar o que você verá
com bastante frequência quando você vê uma expressão regular que foi fornecida na Internet ou em outro lugar, você verá que Número quatro. Deixamos este tópico. Quero saltar aqui para a nossa folha de trapaceiros. Isso faz parte dos rejeitos, amigo. Aprendemos o suficiente agora para reconhecer todos os itens na primeira parte desta
folha de truques . O curinga. Aqui estão nossos caracteres abreviados, dígitos de
frente e espaços em branco,
e, em seguida, são curtos e caracteres para a negação daqueles que não são dígitos de palavra ou espaço em branco. E então aqui temos os conjuntos de caracteres regulares com um intervalo aqui para que este geechee possa ser útil para você. Se você estiver usando a paleta de rejeições, descubra uma expressão regular. Você pode se referir a isso se você não consegue lembrar exatamente o que você precisa entrar para essa coisa
em particular. Você está tentando criar uma correspondência para. Tudo bem, vamos passar para o próximo tópico
18. Iniciar o exercício: é hora do nosso segundo exercício JavaScript. Agora, este exercício em particular não vai ser muito difícil. Vamos construir a partir do exercício de JavaScript anterior, então vamos dar uma olhada no que eu gostaria que você dilatasse. Agora, isso parece muito semelhante ao exercício concluído do Exercício um. No entanto, adicionei um pouco a ele. Eu adicionei três números de telefone adicionais, e como você pode ver, eles estão incorretos apenas três dígitos no último. Assim, a parte adicional deste exercício é certificar-se de que os números de telefone são válidos usando este formato. Obviamente, há muitas maneiras diferentes de inserir um número de telefone que precisaríamos verificar a validade. Mas agora estamos mantendo isso simples. Vamos usar esse formato para determinar se ele é válido ou não. Então, o que está acontecendo atualmente? Deixe-me mostrar que abra o console e exiba o novo array. Estamos pegando esses números de telefone aqui, esses três últimos, e eles não são números de telefone válidos, e então nós queremos modificá-lo para que ele não pegue esses números. Então, basicamente, tudo o que você vai fazer é modificar a expressão regular. Tire algum tempo para descobrir isso
e, e, quando estiver pronto, veja a solução
19. Acabamento de exercício: Tudo bem. Espero que não tenha sido muito difícil para você. Tentei manter este simples. Agora, basicamente, tudo o que precisamos fazer é em uma expressão regular, é preencher o resto do que esperamos. Neste momento, temos apenas um reboque um hífen, e estamos apenas esperando que em algum lugar no número, se preenchermos mais, podemos ter mais certeza de que estamos recebendo o tipo certo de correspondência. Agora. Isso é algo que gostaríamos de fazer com conjuntos de caracteres porque os números podem estar em qualquer lugar entre zero e nove. Então nós poderíamos fazer um monte desses conjuntos de caracteres como este, e então fazer outro e, em seguida, outro e então, um hífen que nos daria a próxima parte do número de telefone. No entanto, isso é muito para digitar para isso. Então este é um caso em que gostaria de usar a abreviação,
e assim podemos fazer isso com conjuntos de caracteres de três dígitos. Então vamos fazer outro hífen, e vamos fazer mais quatro para os últimos quatro números do número de telefone. Tudo bem, vamos guardar isso e ver o que temos agora. Então nós fresco que vamos abrir o console. Uma exibição. Novo, corajoso. Veja o que tem aí e ganhamos cinco. Então não vamos receber os últimos três, que é bom. Então isso faz o que estamos tentando fazer. No entanto, eu gostaria de mostrar uma coisa, e nós aprenderemos sobre como lidar com isso mais tarde no curso. Mas quero mostrar-lhe um problema com esta solução. Digamos que este número aqui em cima, a razão pela qual ele estava errado é porque ele tinha um dígito adicional aqui no final, então ele não deveria ter quatro, e ele tem cinco. Será que esta expressão regular impedirá que isso seja uma combinação? Pense sobre isso. Vamos dizer isto e vamos em frente e descobrir o que conseguimos. Então exibição fresca e ardente. Nenhum raio de novo. Ainda estamos agarrando isso. Tem cinco dígitos. Por que está agarrando isso? Bem, a razão é agarrá-lo é porque esta parte ainda é compatível. E então ele corresponde que o dígito extra não o afeta porque nós não temos nada vindo depois disso para indicar que este é o fim dos quatro dígitos. Como eu disse mais tarde no curso, vamos aprender uma maneira de lidar com que você pode especificar iniciar um fim de uma string, e que pode nos ajudar a tornar esta expressão regular mais utilizável. Tudo bem, vamos passar para a próxima seção.
20. Como usar repagina no seu padrão: até este ponto, não
falamos sobre como repetir caracteres. Quando estamos definindo uma expressão nesta seção, vamos fazer exatamente isso. Às vezes, você pode precisar de um personagem para repetir a fim de encontrar uma correspondência. Expressões regulares vêm com três caracteres de matéria que permitem que você indique que o item deve ser repetido e quanto ele deve ser repetido. Vamos dar uma olhada naqueles primeiro fora do símbolo mais. Agora, em todos esses meta caracteres, todos os três que vamos olhar, eles se aplicam ao item mais anterior à esquerda na expressão regular. Não mais do que isso. Então você coloca logo após o item que deseja repetir, e no caso do símbolo de adição, ele indica que queremos procurar algo que corresponda a uma ou mais ocorrência desse item que está à esquerda. Certo, também
temos o ponto de interrogação. Esse meta caractere indica que queremos corresponder zero ou uma ocorrências para que dois
estados possíveis não existam tudo, ou existe apenas uma vez, e então criará uma correspondência. Finalmente, o asterisco indica que queremos corresponder a zero ou mais ocorrências. Assim, um número infinito de ocorrências poderia corresponder para aquele item em particular. Não, esses meta caracteres que correspondem a zero são interessantes. Basicamente, o que você está dizendo quando você usa um destes é que este item pode estar nos dados que eu estou olhando e, portanto, eu quero combiná-lo ou pode não ser. E se for no caso do Astérix, pode estar lá muitas vezes. E então cuidado com isso agora. Estes Medicare ocorre pode ser um pouco difícil de entender como eles funcionam. Eles parecem muito intuitivos, Justus. Passamos por eles. Mas entender como eles funcionam pode ser um pouco mais difícil, então é importante que nós os entendamos. Para isso, precisamos de dar uma olhada em alguns exemplos. Agora aqui temos uma corda, e eu não vou tentar dizer isso porque provavelmente vou estragar tudo, já que é um torção de língua. Mas isso nos dará alguns dados para entender como essas coisas estão funcionando. Então, por exemplo, vamos começar com algo simples. Vou colocar um conjunto de caracteres aqui de letras maiúsculas de um a Z, e podemos ver que ele corresponde a todas aquelas letras maiúsculas que encontramos nesta língua Twister. Agora, o que aconteceria se adicionássemos personagem de repetição? Vamos primeiro adicionar o símbolo de adição. , Lembrem-se, isto corresponde a um ou mais. Isso realmente não muda, certo, porque não há. Não há uma situação em que haja um ou mais caracteres maiúsculos. Se isso acontecesse de ser em maiúsculas lá, então ele iria encontrar uma correspondência para ele. Sem esse símbolo de adição, são dois fósforos separados. Então, se desligarmos a bandeira global, conseguiremos uma correspondência para o S. Colocamos um símbolo de adição. Conseguimos uma combinação para ambos. Está bem, deixa-me ligar o nosso global agora. O que aconteceria se mudássemos isso para ponto de interrogação? Agora pense sobre isso e observe esta pequena indicação aqui este infinito. Quando passamos o mouse sobre o que diz ar, a expressão pode corresponder zero caracteres e, portanto, corresponde infinitamente. Então, basicamente combinamos tudo porque estamos dizendo zero ou um dos caracteres maiúsculos e o mesmo com o asterisco Asterix também. Zero são muitos, e temos o mesmo ar aqui. Então rejeita, PAL indica que é um ar fazendo isso no script Java. Não pegamos um ar, ele só retorna. Se é uma questão não, por exemplo, de deve criar uma expressão regular. Vamos simplesmente ter o mesmo tipo de coisa. Estamos apenas olhando para esse tipo de coisa. Pressione Return. Agora, se fizermos um teste nessa expressão regular, vamos passar o texto. E I O e U Tudo em maiúsculas foi um retorno retorna. Verdadeiro. Isso indica. Sim, ele encontra uma correspondência mesmo que uma expressão regular corresponda infinitamente. Tudo o que se preocupa é se há uma correspondência ou não. Agora, o que aconteceria se fizéssemos exatamente em que ele basicamente corresponde no início é o que ele está nos
mostrando índice de zero. É aí que está encontrando a correspondência. E é assim que Javascript lidaria com isso. Esse tipo particular de expressões regulares, não algo que você queira inserir, na verdade. Não te fornece nenhuma informação porque pode combinar com qualquer coisa, mas a razão pela qual eu a uso aqui é para te dar uma ideia de como essas coisas estão funcionando. Agora vamos tentar outro. Deixe-me fazer um aviso. Toda a SS está nesta língua Twister. Agora, se eu fizer depois disso de um a Z em minúsculas, vamos ver o que conseguimos. Então temos tudo o que não pediu neles segue com outro personagem. E se fizéssemos um personagem de repetição? Digamos que fizemos a vantagem lá. Agora veja o que está combinando. Pode combinar o maior número possível. E assim ele vai o mais longe possível para combinar com tudo isso que é chamado de ser ganancioso. Expressões regulares são normalmente gananciosos, está tentando corresponder tanto quanto possível. E então quando nos deparamos com um espaço que não pode mais coincidir, e então uma nova partida começa de novo. Obviamente, se removermos a bandeira global, teremos uma única correspondência lá. Agora vamos ver o que aconteceria com o ponto de interrogação porque agora pode ser zero ou um. E então agora temos apenas dois personagens, e também podemos obter um único rabo sem outro personagem depois dele, porque pode ser zero. Isto representa zero de qualquer um destes. Lembre-se, é o item que é a esquerda que ele está modificando. E é por isso que estamos recebendo zero esses agora. Obviamente, um asterisco seria muito semelhante ao plus. A principal diferença entre o plus é se tivéssemos um S cabelo avisos pegá-lo. A vantagem não porque requer um ou muitos um ou muitos destes. O asterisco é zero ou muitos. Tudo bem, vamos mudar as coisas de novo. Apenas, uh, permitir que você veja algumas aplicações de diferença e ajudá-lo a entender isso melhor. Tudo bem, agora vamos fazer isso para uma expressão regular. Vai fazer. Letra maiúscula para iniciar. Então faremos um aviso de letra minúscula e chegaremos às cartas no jogo. Mas agora o que acontece se colocarmos um símbolo de adição depois de onde estamos indicando que queremos combinar um ou mais? Porque o que estamos dizendo é que queremos encontrar nomes que comecem com letras maiúsculas. Se temos um nome que começa com e maiúsculas, mas nada mais vem depois dele. Não combina. Agora vamos olhar para um exemplo em que usaríamos o ponto de interrogação. Digamos que queremos encontrar a palavra maçã ou maçãs. Nós não nos importamos. Só queremos ver se a maçã ou as maçãs estão lá. Talvez estivéssemos fazendo algum tipo de teste, algum tipo de educação on-line, e eles tiveram que entrar em algo sobre maçãs. E não nos importávamos se era plural ou singular. Não notado. Neste momento, a forma como é inserido que vai combinar com maçãs, não
vai coincidir com a Apple. No entanto, se colocarmos um ponto de interrogação depois dele agora, vamos combinar ambos. Ambos se tornam um jogo porque temos nossa bandeira global em Tudo bem. Mais um exemplo. Um exemplo um pouco mais prático com asteriscos. Eles estavam procurando por um arquivo de registro e nós queremos encontrar qualquer coisa. Isso é um aviso Agora O aviso pode ter uma exclamação, ou pode ter vários pontos de exclamação depois. Neste momento, a palavra aviso não está encontrando uma correspondência. No entanto, se colocarmos um asterisco depois dele agora que corresponde. Se, em seguida, colocar vários pontos de exclamação após ele, que corresponde bem porque ele zero ou muitos e lembre-se que modifica o personagem. É ao lado de,
Por isso, modifica o ponto de exclamação. Nada mais. Todos estes são personagens únicos agora. Eu mencionei apenas um pouco atrás sobre a ganância de expressões regulares, e esse é um conceito importante. Entenda, com expressões regulares é que eles são gananciosos, e por isso precisamos gastar um pouco de uma discussão sobre isso e como isso afeta quando correspondências foram encontradas. Então vamos passar para o próximo tópico.
21. Entendendo certidão e preguiça: Antes de continuarmos discutindo a repetição, precisamos lidar com dois conceitos importantes. A ganância das expressões regulares e como tornar essas expressões regulares preguiçosas. Portanto, por padrão, expressões
regulares são gananciosas. Isso significa que eles tentam combinar o maior número possível de caracteres. Vamos dar uma olhada nisso. Aqui está rejeitado Pal. E na string de teste, eu tenho alguns HTML basicamente duas tags de parágrafo. A 1ª 1 aqui 2ª 1 ali, e eu basicamente repeti que algumas linhas para baixo. A razão pela qual eu repeti é porque eu quero usar esta linha para ajudar a ilustrar o que está acontecendo quando criamos uma expressão regular e ela tenta encontrar uma correspondência. Isso vai nos ajudar a explicar a ganância das expressões regulares e como torná-las preguiçosas. Agora, digamos que para os propósitos de nossa expressão regular, queremos corresponder a uma hora de parágrafo. Queremos combinar desde o início da tag de parágrafo até sua tag final aqui. Então essa quantidade agora este é um novo conjunto tem outro começo, tag
parágrafo e tempo interminável, então queremos lidar com eles separadamente. Agora, para este exemplo, vou desativar a causa global. Eu só queria combinar uma vez, e isso vai me ajudar a ilustrar o que estamos fazendo. Então eu tenho global desligado. E agora vamos em frente e digite expressão irregular. Então, se estamos tentando combinar tag de parágrafo, tudo entre e depois o parágrafo final, vamos começar com o nosso parágrafo, marcado a tag de parágrafo de abertura. E então isso obviamente corresponde onde ele encontra o primeiro conjunto disso porque nós não temos global ativado. Agora vamos em frente e colocar em nossa tag de parágrafo final. Agora, obviamente este personagem aqui, precisamos escapar, certo? E então vamos colocar o nosso personagem de fuga para explicar isso. Agora, o que colocamos dentro disso para explicar qualquer texto que possa estar aqui? Bem, temos um caractere curinga, Mac, e representamos qualquer um desses personagens, e também aprendemos repetição. Então agora deixe-me ir em frente e colocar um asterisco. Agora, veja o que aconteceu com essa expressão regular. Ele não parou na tag de parágrafo final. Foi até a tag final do parágrafo. Então esta é uma ilustração da ganância das expressões regulares. Agora, o que queremos dizer com isso? Bem, a expressão regular vai combinar o máximo que puder. Vai tentar igualar tudo o que pode corresponder. E então começamos combinando essa tag de parágrafo de abertura. Então nós temos o caractere curinga do dedo e então nós temos essa repetição de zero ou mais e assim como é ganancioso, ele apenas começa a agarrar tudo. Isto aqui corresponde ao caractere curinga? Sim. E isso também. E assim como o P e assim por diante. E assim continua agarrando, agarrando, agarrando, agarrando até ficar claro aqui até o fim. E então o que ele faz, então ele percebe, Oh ,
espere, eu peguei tudo nessa linha, mas eu também preciso procurar um par para esta última parte. Então ele começa a retroceder e começa a devolver personagens pouco a
pouco, pouco a pouco até que ele devolva o suficiente para que ele possa encontrar isso no final da última partida também. Agora, para mostrar essa ganância, veja o que acontece se eu remover a aderência final do parágrafo. Ainda combina com a coisa toda. O parágrafo final não faz nada por causa da ganância de nossa
expressão regular . Está agarrando tantos personagens quanto possível. Então deixe-me ilustrar isso de novo, aqui na linha abaixo. Então primeiro encontramos esta parte de nossos técnicos, e que corresponde à primeira parte de uma expressão regular. Mas então temos um curinga e indicamos zero ou mais. E então ele começa a agarrar tudo o que pode. Combina com
tudo, certo. E isso combina com essa expressão regular. Agora, quando temos isso adicionado de volta no parágrafo final, tag adicionado de volta em, Aqui está o que acontece. Então primeiro combinamos tudo e então ele diz: “
Espere, Espere, eu tenho alguns impostos aqui que eu preciso igualar. E assim devolve uma porção. Ele devolve o primeiro personagem. Isso combina com a última parte? Não. Devolve outro. É um jogo na última parte? Não. Devolve. Outro está em um jogo. Não é bem assim. É um fósforo? Sim, e depois combina com ele. E então ele primeiro combina com tudo por causa da ganância, e então ele devolve alguns personagens, a fim de encontrar uma correspondência. Para a última parte dessa expressão regular. Então isso é ganância. E é essa ganância que está causando isso. Então está combinando com tudo, e não está parando nesta primeira tag de parágrafo final. Agora podemos fazer expressões gananciosas preguiçosas, o que significa que em vez de agarrar tudo o que pode , é Aziz preguiçoso quanto possível, e ele agarra o mínimo que pode. Essa é a diferença agora. A forma como expressamos preguiça é com o ponto de interrogação. Agora o ponto de interrogação que aprendemos em repetição. E lembre-se que o ponto de interrogação corresponde a zero ou a um caractere. Agora, quando colocamos o ponto de interrogação após este personagem de repetição aqui, ele o obriga a ser preguiçoso. O relógio. O que acontece agora? Estamos selecionando apenas o primeiro parágrafo, não a coisa toda. Se nos tornássemos globais, então combinaríamos com todos eles. OK, mas haveria quatro partidas separadas onde se desligássemos global, a partida única é apenas a 1ª 1 Agora, por que não fez isso? Qual é a diferença quando fazemos uma expressão regular preguiçosa? Por que isso acontece? Explicamos como funciona quando é ganancioso. Bem, vamos explicar como funciona quando é preguiçoso, então quando é preguiçoso,começa bem, começa bem, eu preciso coincidir com este parágrafo de abertura. Ele descobre isso e então é preguiçoso e diz, eu posso sobreviver sem nada combinando. E então eu vou ser preguiçoso e tentar igualar nada. Bem, se não corresponder a nada, não encontra uma correspondência para esta última parte aqui. Certo, se tivéssemos algo assim, deixe-me colocar isso bem rápido. Então ele vai encontrar uma combinação porque é preguiçoso. Ele não precisa de nada entre a tag de parágrafo de abertura e a tag de parágrafo de fechamento. Não é necessário. É ser preguiçoso. Então o que acontece é que ele encontra um par para isso, e então ele também percebeu. Preciso encontrar algo que corresponda ao fim desta expressão regular. Então vamos para outro personagem. Encontro uma correspondência no final dessa expressão regular? Ainda? Não. E continua passando por esses personagens, continua passando. Ele, continua passando. Ele, continua passando por isso. Então ele encontra, Oh, e aqui está uma correspondência. Posso parar agora. É assim que funciona. Não era quando é preguiçoso quando é ganancioso, ele agarra tudo primeiro por causa deste curinga e este personagem de repetição, e então ele tenta dar a volta para encontrar um jogo. Quando é preguiçoso, combina o mínimo possível. E é assim que funciona. Então, com preguiçoso com esse ponto de interrogação aqui para tornar esta expressão preguiçosa, o que aconteceria se removêssemos o tipo de parágrafo de fechamento? Seria simplesmente mapear coincidir com a tag de parágrafo de abertura, e isso é tudo porque é preguiçoso. Está agarrando o mínimo possível. Quando removemos o ponto de interrogação que o torna preguiçoso. Em seguida, ele agarra o máximo possível para que você possa ver a diferença ares. Nós vamos entre aqueles dois. A diferença entre ganância e preguiça e este é um conceito importante em
expressões regulares , e nós vamos voltar a ele. Mas primeiro queremos adicionar mawr a toda a ideia de repetição. Então vamos para o próximo tópico.
22. Como especificar uma quantidade de repetição: até este ponto com repetição. Nós não discutimos controlar quantas vezes de repetições de padrão. Tem sido zero ou muitos um ou muitos ou zero ou um bem, também
podemos controlar a quantidade. Então vamos dar uma olhada nisso com os outros personagens médicos de repetição. Eles se aplicam ao item que veio antes na expressão regular, e isso é verdade quando especificamos uma quantidade de repetição. Agora usamos chaves para especificar a quantidade de repetição, então vamos ver o que é possível. Então, primeiro, se dentro das chaves nós colocamos dois números separados por uma vírgula, então nós somos capazes de especificar que ele corresponde de homens a ocorrências máximas. Então, poderíamos dizer, nós tivemos um quatro e um seis. Pode ser algo com quatro. Algo com cinco ou algo com seis. Está em qualquer lugar entre os homens e o número máximo. Vamos dar uma olhada em alguns exemplos em apenas um minuto, mas outra maneira que conduzimos você quantidade de repetição é que podemos simplesmente colocar um único número e, em seguida, que especifica que ele corresponde que muitas ocorrências em qualquer número que especificar . E então, finalmente, mais
uma opção que temos é inserir um número e, em seguida, uma vírgula sem um segundo número depois dele. Agora, nesse caso, estamos dizendo que pode combinar homens ou mais ocorrências, então tem que ser pelo menos o número que entramos para homens. Mas pode ser qualquer número depois disso. Então, como você pode ver, esse tipo de quantidade de repetição vai facilitar a inserção de certas coisas. Por exemplo, quando queremos expressar três dígitos, teríamos que inserir três caracteres metta que representam dígitos. Bem, agora podemos simplesmente inserir um e, em seguida, especificar a quantidade de repetição é esse tipo de coisa. Então vamos falar com o Reg. Exe Powell e vamos dar uma olhada em alguns exemplos. Tenho uma mensagem aqui. Meu número de telefone é o seguinte, e então temos um número de telefone inserido. Depois disso, vamos primeiro dar uma olhada em algum caractere de palavra, então eu vou inserir o caractere de matéria de caracteres de recompensa. E agora vamos dizer que queremos encontrar todas as palavras que são três caracteres. Quatro caracteres são cinco caracteres, então faríamos assim. Então, note que as chaves Curly. A especificar a repetição Venha logo após o item que estavam indicando Queremos repetir Então aqui encontramos 12345 letras e, em seguida, quatro letras e cinco letras, que é o máximo e, em seguida, aqui mesmo. Já que temos espaços no meio
, não combina com nenhum desses. Também corresponde aos números e há 33 e depois quatro. Agora percebem o que acontece se adicionarmos outro caractere de palavra na fronteira? Bem, agora de repente estamos combinando seis caracteres porque tem que coincidir com um aqui, e então tem que combinar pelo menos mais três. E então estamos recebendo um mínimo de quatro. Certo? Aqui está um quatro no máximo de seis. Há um seis. Há um seis. Há um seis. Ok, então isso enfatiza o fato de que a quantidade de repetição modifica o item que está à esquerda. E isso tem sido verdade com o outro. Repetição significava muitos personagens que vimos até agora. Muito bem, vamos modificar isto um pouco. Deixe-me remover essa palavra caractere. E agora vamos apenas especificar que queremos repetir três vezes, e isso é tudo. Então aqui temos um 333 que podemos ver que ele está agarrando em três. Muito bem, reparem no que podemos fazer para encontrar um número de telefone. Colocamos hífen lá está encontrando três caracteres que o ar, seguido de ah, hífen, você
possa começar a ver o que é possível com a repetição. Tudo bem, vamos fazer outro exemplo. Vamos colocar uma vírgula. Lembrem-se, isto representa três ou mais, por isso temos de ter pelo menos três. Então é por isso que estes não são selecionados porque não há pelo menos três. Mas então, uma vez que temos três, ele seleciona tudo o que pode até que não possa mais selecionar. Certo, então é isso que o comum faz agora. Mais um exemplo. Vamos colocar um seis aqui. Agora podemos ver como isso muda de quando tivemos um cinco sabe que o nosso deixou fora W's quando mudamos isso para seis. Obviamente, estamos indo para um número maior que está combinando. Ok, vamos passar para um tipo diferente de exemplo. Então eu vou substituir o texto que está aqui na string de teste. Eu só vou colocar um par de números decimais hexi, notar como ele está combinando com aqueles, mas e se nós quiséssemos especificar apenas números decimais Hexi? Hum, nós não queríamos ter mais nenhuma palavra. Por exemplo, como começar a digitar algo assim. Combina. Todo esse texto é bem, então vamos modificar isso. Vou colocar um conjunto de caracteres em Agora este conjunto de caracteres 0 a 9 A para f aqueles do intervalo. Isso é o que pode existir dentro de como uma parte de um número decimal Hexi. Então vamos fechar nosso conjunto de personagens. Agora precisamos especificar a repetição. E vamos indicar seis. Bem, havia um número de hacks correspondente. Não está combinando com este. Por quê? Porque temos que letras minúsculas aqui. Então, como poderíamos consertar isso? Como poderíamos mudar isso? Bem, poderíamos, mas uma variedade de caracteres minúsculos. Ou podemos usar uma bandeira, nossa bandeira de ignorar casos, que é o que eu vou fazer. Agora temos o olho que ignora o caso, e agora estamos pegando os dois. Se quiséssemos especificar o símbolo da libra na frente, obviamente poderíamos acrescentar isso. Então esse é um número decimal Hexi. E agora se quiséssemos igualar o idiota. Número de segurança, tipo de número de segurança que temos nos EUA, então vou inserir Anna. Falso. Então, número seguro aqui. Bem ali. Vamos ver o que precisamos fazer para combinar com isso. Podemos nos livrar da nossa bandeira de ignorar casos, e vamos começar a construir isso. Então precisamos de dígitos. Isto tem que ser dígitos. Então, primeiro, vamos usar um dígito. Agora estamos recebendo fósforos individuais em todos os dígitos. Queremos que o primeiro satélite repita três vezes. Certo, veja onde isso está combinando. Então temos um hífen. Então queremos que o próximo conjunto de dígitos repita duas vezes. Então temos um hífen. Então queremos que o próximo conjunto de dígitos repita quatro vezes. E lá temos uma combinação do número de segurança idiota. Então, há vários exemplos que olhamos foi especificar a quantidade de repetição. Agora, apenas um ponto de fechamento sobre a forma como especificamos valores de repetição. E isso é que estes não fazem nossos padrões mais flexíveis, mas eles vão torná-los mais curtos para re. Por exemplo, poderíamos ter feito a mesma coisa sem uma repetição como esta. Então colocamos dois dígitos aqui, e então colocamos quatro dígitos nele. Mas ser capaz de especificar quantidade de repetição é mais fácil e pode torná-los mais curtos, e poderia torná-los mais fáceis de ler. Tudo bem, vamos passar para o próximo tópico.
23. Como revisar conceitos de ganância e preguiçosos: Eu queria levar apenas alguns minutos para revisitar a idéia de ganancioso e preguiçoso no que
diz respeito a expressões regulares. Falamos sobre isso com tópicos atrás. Quero agora aplicar essa ideia à repetição quando podemos especificar o montante. Como acabamos de aprender, essa idéia de ganância e fazer expressões regulares preguiçosas é um conceito muito importante, e é por isso que eu quero revisitá-lo. Então aqui em rejeições, amigo, eu tenho alguns números. Agora. Estes números ar de tal forma que existem dois dígitos que no hífen e, em seguida, ele pode estar entre quatro e seis dígitos. Pelo menos aqueles que estou tentando pegar este aqui só tem três. Eu não iria querer essa. Então, baseado no que acabamos de aprender, você já sabe como escrever uma expressão regular para capturá-las. Começamos com um dígito que repetimos duas vezes. Então temos um hífen. Então temos um dígito que repetimos 4 a 6 vezes que você está naquele espaço lá e foi
capaz de capturá-lo Agora. O que aconteceria se contássemos a esta expressão as quatro vírgulas seis? Dissemos a essa expressão de repetição para ser preguiçosa. Vamos dar uma olhada que vai notar o que ele faz agora. Ele só agarra, pois faz a menor quantidade. É preguiçoso. Então sem isso é ganancioso. Ele agarra tanto quanto pode e tanto quanto pode é seis dígitos. Então podemos ver a preguiça sendo ligada a isso. Força-o a ir com o valor mínimo. Agora, se tivéssemos outro hífen depois destes com um número? Neste momento, ainda
estamos agarrando a mesma coisa. Mas agora se eu adicionar um hífen é uma parte disso e, em seguida, outro dígito. Olha o que ele faz agora. Deixe-me reduzir isso ao hífen porque de repente, colocando um limite, esse hífen se torna um limite para o que estamos tentando pegar. Aqui está pegando tudo. Então vai ao máximo novamente. Mesmo que tenhamos um preguiçoso identificar ar indicando esta expressão deve ser preguiçoso. Por que faz isso? Bem, primeiro
pega ser preguiçoso no início,
pega os primeiros 4 números, mas depois tenta continuar com a partida, e a próxima coisa é um hífen. Não há um, então ele pega o próximo personagem e que se encaixa dentro disso. Então diz “Ok, eu fico com isso”. Ainda não combina com isso, mas vou ficar com isso. Então ele vai para o próximo que se encaixa bem entre os quatro dos seis. E então ele vai, o próximo. Em seguida, ele encontra um hífen que ele está procurando, e assim é capaz de fazer essa correspondência. Então eu acho que é importante, como você está fazendo expressão regular, entender como eles estão funcionando e, claro, entender que por padrão eles são gananciosos. Mas podemos forçá-los a ser preguiçoso é se isso nos ajuda, e muitas vezes isso pode ajudar a expressão regular a ser mais decisivo, que significa que ele vai encontrar um jogo mais rápido. Não vai usar muito poder de processamento para fazer isso. Tudo bem, então isso é ganância e preguiça novamente, vamos seguir em frente e dar uma olhada em um exercício
24. Iniciar com exercícios: é hora do exercício seis, onde você tem a chance de aplicar o que aprendemos a um problema de script Java. Então vamos dar uma olhada no que vamos fazer Teoh neste exercício. Primeiro, quero mostrar a página HTML da qual este exercício faz parte. Basicamente, o que temos aqui é um preenchido onde nos dizem para inserir um número de telefone. Vai ser um número de telefone de 10 dígitos, e aqui está o que queremos fazer com esse número uma vez inserido. Então queríamos validar o número de telefone inserido no campo de texto, e queremos validar conforme o número é inserido. Assim, à medida que cada número é inserido, verificamos se ele corresponde a esses formatos específicos. E então eu coloquei alguns formatos aqui com os quais ele deve funcionar. Então Prince vê em torno do código de área hífens entre os números e lugares apropriados períodos entre os números e lugar apropriado, por isso poderia ser um número sem qualquer um desses. Todos eles precisam ser fósforos agora. Se o número corresponder uma vez que tudo tenha entrado, então a cor do texto deve mudar de vermelho para verde por padrão, as cores do texto vermelho, e por isso precisamos mudá-lo para verde uma vez que obtemos uma correspondência com a expressão regular que nós criamos. Agora, apenas como uma dica, você pode usar o evento de chave para cima no campo de texto para responder a inserir texto para que você possa usar esse evento para verificar e ver se há uma correspondência suficiente. Então, tire alguns minutos, veja se consegue resolver isso, e quando estiver pronto, podemos revisar os resultados.
25. Acabamento de exercício: Tudo bem. Espero que tenha sido bem sucedido em resolver esse problema. Deixe-me ir em frente e tirar alguns momentos e mostrar-lhe como resolveria isso. Agora, quando faço esses exercícios de script Java, não só incluo o material de expressão regular que abordamos, mas também gosto de incluir boas práticas para resolver isso. E então eu vou configurar esta solução em particular com e imediatamente invocado expressão de
função porque eu quero que este código para executar quando as páginas são carregadas. Mas não quero deixar nada residual no âmbito global. Então é por isso que estou fazendo isso. Então deixe-me primeiro configurar a estrutura dessa expressão de função imediatamente invocada. Então, há a estrutura da função entre parênteses, modo que a torna válida dentro do javascript. E então eu uso um conjunto de parênteses para invocar essa função. Certo, então há a estrutura. Então, agora dentro disso, eu posso colocar a solução. Então, primeiro, eu vou declarar variável, e esta variável vai conter uma referência ao texto preenchido está sendo digitado aqui, este campo de texto de entrada. Então, a ideia disso é o telefone. Tão fácil de agarrar? Hum, a variável vai ser telefone, então vamos definir que igual a documento ponto obter elementos por i d e idéias. Então essa é uma variável que eu quero estabelecer. Um segundo que quero estabelecer é a expressão regular. Então, o que armou isso? Esta será a nossa variável. E agora precisávamos encontrar a expressão regular. Prefiro fazer isso com um literal. Então, há a estrutura para o literal. Agora, o que queremos lá dentro? Bem, precisamos explicar no início disso e abrir o prêmio ou pode não estar lá, então essa é provavelmente a primeira parte que temos que lidar. Então eu preciso escapar disso porque é um Perrin. Então eu vou escapar desse personagem porque estamos nos referindo ao personagem real. Nós ainda não aprendemos o que príncipes fazem em uma expressão regular, mas eles são um personagem médico e fazem alguma coisa. Então precisamos escapar agora. Uma vez que isto pode existir ou não no jogo, então eu vou colocar um ponto de interrogação depois dele. Então, basicamente, isso diz a ele para repetir zero ou uma vez. Agora precisamos de três dígitos e sempre haverá três dígitos na primeira parte. Agora, depois dos três dígitos, pode
haver um “close”, “prim”. E mais uma vez, este também não é necessário. E assim vamos repetir esse zero ou uma vez. Isso é o que o ponto de interrogação está fazendo neste caso. Agora, depois que tivermos os primeiros 3 dígitos enfraquecidos, obter, ah, hífen, podemos ter um período ou não conseguimos nada. Pode ser o próximo conjunto de números, então precisamos ter um conjunto de caracteres agora se colocarmos o hífen no início dos caracteres que não precisamos para escapar, colocar o ponto lá porque pode ser qualquer um desses e uma vez novamente, zero zero ou uma vez. Pode haver situações em que não temos nenhum desses, mas podemos ter um hífen ou um período também, e isso configura essa parte do nosso número. Depois dos 3 primeiros dígitos, então temos mais três dígitos, para que possamos cuidar disso assim. Mais uma vez, temos o mesmo tipo de situação depois desses três dígitos. Então eu vou copiar essa parte lá e colá-la depois desses três dígitos. E no final temos quatro dígitos. Então, há uma expressão regular. Isto é o que vai combinar. Temos sido capazes de usar personagens de repetição, e uma coisa interessante sobre este problema é que usamos repetição. Caracteres também indicam que o item pode não existir, não apenas para indicar quantas vezes ele pode existir, mas também indicar que ele pode não existir também. Certo, então essas são as nossas duas variáveis. Agora, para o resto da parte deste problema, precisamos configurar um ouvinte de eventos para esse texto, Phil. E o propósito fora ouvinte evento está no evento chave para cima. Vamos testar e ver se há uma correspondência ou não. Então, vamos primeiro adicionar um ouvinte de evento para telefone telefone ponto adicionar ouvinte de evento. E, claro, o evento que queremos é fundamental. E, em seguida, o segundo argumento que passamos no Event Listener é a função que é
executada quando esse evento ocorre. Então eu vou passar em uma função anônima, um ponto-e-vírgula lá e agora vou definir o que está dentro disso agora. Esta parte deve ser bem simples. Nós realmente precisamos apenas pegar a expressão regular e testá-la contra o valor que está dentro do campo de texto do telefone. Se for verdade, então vamos usar um par de classes que eu incluí em nosso CSS. A classe verde de classe vermelha ler classes já atribuídas como podemos ver aqui, mas também temos uma classe verde. Muda a cor verde. E então, se isso acabar sendo verdade, eu vou remover a classe vermelha e adicionar a classe verde e vice-versa. Se não for verdade, tudo bem, então vamos preparar isso. Se e nós vamos verificar nossa expressão regular, use o método de teste e o que estamos testando contra? Que imposto de novo. Bem, queremos testá-lo contra o valor deste campo de entrada, e assim podemos obtê-lo usando um valor de ponto de telefone. Agora. Se isso for avaliado como verdadeiro, então queremos alterar a classe que está associada com isso, e assim podemos fazer isso com a lista de classes e lista de classes, tem um remove e um método adicionado associado a ele. Então nós removemos a classe vermelha, e então nós adicionamos a classe verde. Agora que vai cuidar da situação se for avaliada como verdadeira. Então, se encontrarmos uma correspondência, mas se apagarem um personagem ou algo assim, queríamos voltar a vermelho. Então indica que não é uma combinação. Então vamos terminar isso com a cláusula de outra. E basicamente fazemos o oposto do que estamos fazendo aqui. Então eu vou copiar isso, e isto vai ser verde e isto vai ser lido. Lá vamos nós. Vamos guardar isso e ver como funciona para nós. Então, vou me refrescar agora. Vamos começar a digitar um número de telefone. Desta vez eu vou usar apenas períodos e ele fica verde. Assim que tivermos um número completo válido. Bem, vamos deletar um período que permanece verde. Excluir outro período permanece verde. O que acontece se excluirmos um número, embora ah volta a ler, Tivemos um número volta a verde. Que tal se adicionarmos um prin lá e uma impressão que ainda o aceite. Agora vamos adicionar um hífen aqui. Ainda aceita isso? E se tivéssemos um hífen aqui? Ainda aceita que tudo isso é válido. Parece que a validação do número de telefone está funcionando. E fomos capazes de configurar isso em uma expressão regular e torná-lo mais preciso por causa da repetição que acabamos de abordar nesta seção em particular. Tudo bem, vamos passar para a próxima seção.
26. Entenda expressões ancoradas: esta seção é intitulada Expressões ancoradas. Mas o que queremos dizer com isso? O que é uma expressão ancorada? Bem, deixe-me dar um exemplo. E se quiséssemos encontrar uma expressão em particular? Uma palavra. Mas nós, Onley, queríamos um fósforo. Se essa expressão veio no início de uma string ou talvez no final de uma string, como faríamos isso? Podemos fazer isso com expressões ancoradas. Este é um exemplo do que é possível com expressões ancoradas. Portanto, esta seção tem uma diferença distinta das seções anteriores. Estamos aprendendo nesta seção para definir posição. Até este ponto, nós pegamos uma correspondência não importa onde na cadeia ela ocorreu. Mas agora vamos aprender a colocar prowlers posição em torno desse jogo. Pode não ser apenas o início ou o fim de uma string. Também pode ser o início ou o fim de uma palavra. Então é disso que se trata esta seção. Então vamos a isso.
27. Usando os ancoragem do início e final: o primeiro conjunto de caracteres Anchored Medic que vamos olhar para nos permite especificar uma correspondência que é o início de uma linha ou no final de uma linha. Então, esses caracteres médicos âncora especificam a posição onde o tapete deve ter lugar. Vamos dar uma olhada nesses dois personagens, então primeiro é a cenoura. A cenoura ancora a partida no início da linha. O personagem médico companheiro para a cenoura é o cifrão, e ancora a partida até o fim da linha. Então, quando esses caracteres de matéria são usados em uma expressão, basicamente o que ele está dizendo é que a expressão tem que estar localizada em um determinado lugar
para que a correspondência ocorra quando usamos a cenoura. Obviamente, isso tem de estar localizado no início da linha onde o cifrão está no
fim . É a última coisa, e se for a última coisa, então produz uma correspondência. Vamos dar uma olhada em alguns exemplos que vou pular para rejeitados. Pal e eu temos uma mensagem aqui. Uh, fornecer algumas informações sobre o caráter médico ponto que é uma boa informação. Mas queremos usar este trabalho de dedo do pé tributado com correspondências que ocorrem no início ou no fim da linha. A primeira coisa que vou fazer é apenas a palavra “teu “em Oregon. Podemos ver que ele corresponde em dois lugares porque temos a bandeira global como parte de uma expressão
regular. Agora, se também adicionarmos o sinalizador de caso ignorar o I, então podemos ver várias correspondências ao longo. Não percebe o que acontece se adicionarmos a cenoura? O cuidado vai especificar que a palavra tem que ser no início da linha, Então eu coloquei a cenoura. Agora só temos uma única correspondência porque essa é a única coisa que existe no início
desta linha de texto. Agora este texto quebra, mas realmente, o começo está bem aqui. Por exemplo, se eu tivesse, não
teríamos uma correspondência aqui porque não é uma nova linha. Não é o começo de uma mentira. Agora, que tal se eu entrasse primeiro? Ele encontra uma correspondência lá, mas agora vamos adicionar o sinal de dólar e porque o sinal de dólar especifica que este será um o fim da linha. Adicionamos o homem, um personagem no final. Então basicamente o que ele está fazendo é olhar e encontrar uma correspondência. E, em seguida, quando ele corre para o sinal de dólar personagem Matic, ele certifique-se de que corresponde no final da linha e aviso. Não é a última coisa. T não é duradouro. Há também um período lá. Então, se nós fossemos toe adicionar um período agora nós temos uma correspondência porque isso é no final da linha. Agora, se usarmos os dois juntos? O que isso faz para nós? Como deve ter adivinhado, não
teremos uma combinação, mas quando usaremos algo assim? Quando usaríamos uma expressão cercada pela cenoura e pelo cifrão? Bem, isso é talvez se quiséssemos encontrar um jogo onde isso é a única coisa que existia e queríamos ter certeza de que não havia mais nada com ele, Por
exemplo, se eu tivesse um espaço aqui de repente que não é mais um jogo, porque esta tem que ser a única coisa que está lá. Apague esse espaço e teremos o jogo de novo. Então estes começam um fim. Meta caracteres podem permitir que você faça algumas coisas que você não seria capaz de fazer de outra forma. Agora nós introduzimos o início e o fim de ancoragem meta caracteres, e esses dois meta caracteres desempenham um papel importante sempre que você usa a bandeira multi linha, o M. Então nós precisamos falar sobre eles com a bandeira multi linha, e é isso que vamos fazer no próximo tópico. Então vamos seguir em frente.
28. Usando a bandeira multilinha: Agora que introduzimos expressões ancoradas, é importante explicar como elas agem no modo multi linha. A definição do cuidado é que ele corresponde ao início da linha. Eu usei especificamente o início da linha para descrevê-lo porque quando usamos o sinalizador de
modo multi linha , ele vai procurar uma correspondência no início de cada linha. Se eles são várias linhas no texto e isso é verdade para o cifrão que corresponde
no final da linha, ele vai procurar uma correspondência no final de cada linha. Modo de várias linhas. Realmente Onley efeitos Os caracteres meta cenoura e cifrão porque eles irão especificar uma posição, uma correspondência que está ligada a uma linha de texto. Vamos ver como esta bandeira multi mentirosa efeitos coisas agora aqui em rejeitos amigo. Eu ainda tenho o mesmo texto e vamos em frente e colocar a palavra que novamente como estamos trabalhando com no último tópico, sabe que temos várias correspondências até que adicionamos um cuidado e, obviamente, que, em seguida, reduzi-la
para baixo para um único jogo e é um começo desta linha. Isso agora é considerado uma linha. Então, até que tenhamos uma quebra de linha, não
há uma segunda linha. Mas posso colocar outra linha aqui. Nós não temos uma correspondência. Não há correspondência porque o modo multi linha não foi ativado usando esse sinalizador M. Então vamos em frente e ativar isso. E agora você pode ver que temos uma segunda partida no início da segunda linha e você
pode ver que temos o M como parte de nossa expressão regular. Agora temos o G, o I e
o M.
O olho indica que queremos ser insensíveis a maiúsculas e minúsculas. O G indica global, assim como muitas correspondências possíveis no M indica multi linha, o
que afeta a cenoura e diz que agora você confinou partidas, não apenas o início de todo o texto, mas no início de cada linha. Isso também será verdade com o cifrão. Então vamos substituir isso por um ponto e, claro, entramos no período. É um personagem de matéria que especifica qualquer personagem, então vamos escapar disso e agora podemos ver que temos cinco partidas. Há cinco períodos lá, mas se quiséssemos especificar o fim de uma linha, colocamos o cifrão depois dela. Sem notar que só conseguimos uma correspondência no último período. Por que isso aconteceu? O que está acontecendo aqui? Bem, vamos dar uma olhada. Aviso sabe o espaço Após o período, havia um espaço antes da palavra o e quando pressionei retornar e criou uma quebra de linha, o espaço ainda foi deixado lá. Se eu remover esse espaço, teremos uma correspondência sem período também. Então tem que ser a última coisa na linha. Agora é importante lembrar que este modo multi linha, quando adicionamos que na bandeira no final de uma expressão regular é um fax, o símbolo de cenoura e o símbolo de cifrão. Como eles estão amarrados a linhas, eles estão especificando uma posição em uma linha tão tecnicamente falando no modo multi linha, o cuidado que ele irá corresponder no início e depois de cada quebra de linha. Então aqui está uma quebra de linha aqui, bem no final disso, e assim a cenoura fará com que ele procure outra correspondência logo após essa quebra de linha, enquanto o sinal de dólar corresponde no final da linha, mas logo antes cada linha quebra. Então aqui está uma quebra de linha e está verificando logo antes da mesma coisa aqui. OK, então ou é o fim dos dados ou logo antes de uma quebra de linha. Isso é o que está acontecendo com o cifrão. Não, se eu acho que se você manter essa definição técnica com você, eu acho que isso ajuda você a entender como eles funcionam e como usá-los quando você está criando expressões
regulares que você quer ancorar o dedo em uma posição específica na linha. Agora há mais uma distinção importante que eu preciso mencionar sobre o modo multi linha. Deixe-me ilustrar isto. Vou remover o sinalizador de linha múltipla para que o M tenha ido do
aviso de expressão regular . Temos uma combinação agora. No final. Temos várias linhas aqui, mas isso agora está especificando no final de tudo que o dólar assinado cartão Medicare especificando que porque nós não estamos no modo multi-linha e então ele encontra aqui e se recebe uma correspondência, mas não recebe este porque não estamos no modo multi-linha. Mas olha, o que acontece se eu entrar um retorno aqui agora que não está mais no final e assim não há partidas dadas. Então, no modo de linha única, isso não iria obter uma correspondência porque há US terceira linha foi adicionado e por isso não é mais a última coisa no texto. Mas se ativássemos o modo multi linha,
então, é claro, obteria uma correspondência lá. Então, no modo multi linha, ele está procurando uma correspondência. Se uma quebra de linha ocorrer imediatamente após o que especificamos em nossa
expressão regular , tudo bem, vamos passar para o próximo tópico.
29. Trabalhando com limite de palavras: expressões regulares consiste em outro meta caractere ancoragem apertado, e esta nova âncora define o limite de uma palavra. Então, se quisermos garantir que nosso padrão em Lee corresponda a uma palavra que não seja parte de uma palavra, podemos usar uma palavra limite. Não, Há também outro caractere de matéria, os louses para especificar um limite não palavra. Assim, o lado esquerdo ou direito do padrão precisará de um caractere sem palavra para criar uma correspondência. Isto é basicamente o oposto de uma palavra limite. Então vamos olhar para esses meta caracteres primeiro fora do nosso caractere limite de palavras. É um caso menor estar com você escapar. Então escapamos. Em minúsculas ser para criar nosso limite de palavras, e isso indica que o padrão é limitado por um caractere sem palavra. Dependendo de qual lado do padrão lugares fracos, podemos colocá-lo no lado esquerdo e no lado direito. Se o colocarmos em ambos os lados e isso indica, bem, o que quer que esteja dentro, este precisa ser um padrão delimitado por caracteres sem palavras. Agora, o oposto disso é apenas a maiúscula. Seja assim que escapou a maiúscula ser, e isso indica que o padrão é vinculado por caracteres de palavra e que poderia ser
colocado, é
claro, à esquerda e à direita. Agora, o que queremos dizer quando estamos fazendo limite de palavras? Bem, como com os últimos personagens de ancoragem que falamos, o símbolo de cenoura e o sinal de dólar, esses meta caracteres de limite de palavras
posição de referência , não um personagem real que é importante lembrar com facilidade de ancoragem tipo. Medicare ocorre que eles estão referindo posições, mas por referências posições foram capazes de definir MAWR. Expressões regulares exatas. Agora, lembra-a. Quais são as palavras caracteres? Bem, realmente, as palavras caracteres coincidem exatamente com o nosso atalho de palavras. O escape W e que é igual a maiúsculas e minúsculas Z A Através de Z e, em seguida, zero nove e, em seguida, também um sublinhado sublinha uma parte de um caractere de palavra. Então é isso que representa caracteres de palavras. Então vamos pular para rejeitar Pal e dar uma olhada em alguns exemplos. Agora eu tenho uma frase aqui, e a razão pela qual eu escolhi essas frases porque ela usa a palavra plano em vários lugares. Em um lugar é a palavra inteira, mas em outros lugares, é apenas partes de uma palavra. Então vamos em frente e colocar um plano em nossa expressão regular. Nós admitimos que combina com quatro lugares. Agora, se quiséssemos combinar o plano Onley como uma palavra e não como parte de uma palavra, usaríamos uma palavra limite para fazer isso. Comece com um limite de palavras à esquerda. Então usamos barra de escape e depois um B. E agora estamos limitados a três partidas. Todas estas três correspondências são o início do significado da palavra. O que está no lado esquerdo é um caractere sem palavras. Neste caso, é um espaço. Em todos os três casos, é um espaço, mas também pode ser outros personagens. Há um hífen. Muitos dos símbolos, por exemplo, são caracteres sem palavras. Também pode ser o começo de algo. Por exemplo, se tivéssemos novamente que corresponde à sua porque esse é o início da nossa frase. E assim o lado esquerdo disso é um caractere sem palavras. E assim conseguimos essa correspondência. Deixe-me voltar ao plano. Agora, dois destes ainda têm um caractere de palavras no lado direito, podemos ver que o chá e o mal zor ambos caracteres palavra. Então, se fizéssemos um outro limite de palavras que garantisse que nós Onley pegássemos aquela que é uma palavra onde plano é a palavra completa, não
é parte de uma palavra. É a palavra completa. E isso é o que uma palavra limite pode fazer por nós agora. Limites de palavras não têm dedo do pé apenas ser usado com palavras completas. Por exemplo, poderia ser algo assim. E, claro, podemos misturar em nosso padrão que ligamos com esses meta caracteres. Podemos usar qualquer uma das outras coisas que aprendemos sobre expressões regulares. Agora, com nossa bandeira global, podemos ver que mesmo usando a palavra limite, podemos combinar mais de um lugar. Porque ambos os padrões este th i s são limitados por caracteres que não são palavras. Tudo bem, vamos voltar ao plano. E agora o almoço Mude esses dois limites sem palavras. Então eu vou fazer um caso superior, estar atento agora, nós não estamos recebendo uma correspondência em tudo, e isso é porque nós temos uma palavra limite no final aqui. Então só há um lugar onde o plano é o fim da palavra. Esse não é o caso do Plant. Esse não é o caso do Planeta. Não é o caso do implante, mas o início do plano já está antes. Um caractere sem palavra e a maiúscula ser um especificando que ele deve ser um caractere de palavra . Então, por exemplo, se colocarmos uma carta lá, bem, lá vamos nós. Agora temos um fósforo. Tudo bem. Agora, se mudarmos esta última parte para uma maiúscula ser agora, nós combinamos o plano dentro do implante porque ele é limitado por caracteres de palavras. Então, a maiúscula B especifica que está limitada por um caractere de palavra. A minúscula be especifica que é delimitada por um caractere sem palavra, indicando que o padrão entre precisa ser uma palavra. Então é por isso que chamamos a minúscula de limite de palavra porque estamos limitando uma palavra. E a maiúscula ser, indicamos, é um limite sem palavras. Porque aqui nós limitamos algo que não é totalmente uma palavra porque há
caracteres de palavras em ambos os lados dela. Às vezes, essa distinção pode ser um pouco confusa quando se trabalha com limites de palavras. Tudo bem, vamos passar para o próximo tópico
30. Expressões regulares: Nós cobrimos um monte de técnicas diferentes que podem ser usadas na construção de
expressões regulares . Precisamos de um breve momento para discutir um conceito importante. É importante tentar escrever as expressões regulares mais precisas que você pode agora. O que eu quero dizer com isso? Às vezes podemos ficar preguiçosos com as expressões regulares que escrevemos. Por exemplo, uma correspondência específica que você estava tentando obter pode ter mais de uma
expressão regular que funcionará para os dados que você está testando. Então você rapidamente direita expressão regular testado e parece funcionar. Então você não pensa mais nisso e apenas segue em frente. Mas, quanto possível, essa expressão regular pode ter correspondências incorretas de um
conjunto diferente de dados. Então, mesmo que você está testando está funcionando, certifique-se de que você pensa através de sua expressão regular e que é o mais preciso possível . Agora já vimos inúmeros exemplos ao longo deste curso, mas deixe-me mostrar outro exemplo apenas para enfatizar o ponto. Vou usar o CEP dos Estados Unidos como exemplo. Agora, o EUA CEP dos
EUAgeralmente consiste em cinco números como eu escrevi aqui. No entanto
, também pode ter uma extensão de quatro dígitos como esta, e isso está se tornando mais comum. Mas, geralmente, quando falamos de um CEP U. S, estamos falando de cinco números. Então vamos dizer que eu estava montando uma expressão regular que corresponderia ao CEP. Bem, eu poderia montá-lo como este caractere curinga e depois uma repetição, e essa repetição indica que combina com o seu antigo mais vezes. Agora reparem que temos o jogo que queremos. Temos um código postal de exemplo aqui e conseguimos a correspondência que queremos. Mesmo se adicionássemos a extensão de quatro dígitos, ainda
conseguiríamos essa correspondência, então parece que está funcionando para nós. No entanto, você já está ciente de que esta não é a melhor expressão regular para fazer isso, pois isso pode corresponder a qualquer coisa. Eu posso colocar qualquer personagem na parte da frente dele no verso dele, o que quer que ele vai coincidir com eles porque nós usamos o curinga. Então vamos reduzir isso. Vamos reduzir o que pode ser combinado colocando em uma gama de dígitos. Agora, se eu colocar letras na frente, não corresponde mais, coincide com a extensão de quatro dígitos? Não, agora
perdemos isso porque agora estamos focando apenas em dígitos. Bem, poderíamos adicionar o hífen lá, e agora temos a correspondência. Mas mesmo com isso, digamos que temos um número. Digamos que temos um número como este. Isso é um jogo. Mas isso não é um CEP como onda muitos dígitos para que ele seja um CEP. Por isso, temos de reduzir ainda mais. Vamos colocar o número exato de caracteres que querem repetir agora. Se voltarmos ao código postal original, sim
, corresponde agora. E se tivéssemos vários dígitos? Bem
, ainda encontra uma correspondência. Se pegarmos todo esse pedaço de dados, não
é um código postal, mas está recebendo uma correspondência porque os primeiros 5 dígitos correspondem ao nosso padrão. E é aqui que precisamos do Teoh. Adicione âncoras a uma expressão regular para forçá-la a ser o tipo de dados que queremos. E então eu colocaria um começo terminado em, e agora nós não temos mais essa partida agora para que ele consiga a correspondência, ele precisa ser cinco dígitos e cinco dígitos em Lee porque estamos marcando o ponto de partida no ponto final desses dados. Então, reduzimos o que pode ser ainda mais agora. Isso, é
claro, causa um problema quando temos uma extensão de quatro dígitos como essa. Então, como responderíamos por isso? Bem, então continuamos a trabalhar com a nossa expressão regular, fazemos algumas das mesmas técnicas, e lá temos uma correspondência e isso funciona muito bem para isso. No entanto, vai coincidir com apenas cinco valas de código? Não, ele não sabe que perdemos isso. Então você pode ver o tipo de processo que passamos aqui e a importância de tornar suas expressões
regulares o mais precisas possível. Agora aprendemos maneiras de indicar que os dados podem repetir zero ou uma vez ou zero ou muitas vezes. E então esta última parte aqui, o que precisamos fazer para fazer isso funcionar é indicar que isso é opcional, que ele não precisa ser uma parte desse número. E então queremos adicionar um ponto de interrogação final, indicar que ele pode repetir ou não. Mas, no entanto, o ponto de interrogação só se aplica à esquerda a maioria dos itens que precisávamos aplicar
a tudo, enquanto na próxima seção vamos estar olhando para agrupar caracteres para resolver isso completamente . Mas basicamente o que eu quero enfatizar é a importância de fazer essas
expressões regulares precisas . E há algumas regras que podemos seguir quando estamos fazendo
isso, para que tenhamos certeza de que estamos cobrindo nossas bases,
por exemplo, quando possível, para encontrar a quantidade de expressões repetidas. Então, quando começamos com isso, eu tinha esse tipo de coisa, e eu não estava especificando a quantidade que ela se tornou ou precisa quando eu especifiquei a
quantidade dessa expressão regular. Ok, então essa é a regra número um. A segunda regra restringe o escopo das expressões repetidas. Vimos isso também quando estávamos trabalhando nisso. Então inicialmente eu estava usando curinga, e isso combina. Isso é ótimo. Mas o alcance deste curinga é muito grande. Ele cobre um monte de caracteres, então nós estreitamos o escopo com um conjunto de caracteres. Indicamos quais personagens poderiam fazer parte desse conjunto. Foi assim que reduzimos. Então essa é a segunda regra e, em seguida, a regra número três, a terceira regra a seguir, fornecer claro, começando em qualquer ponto. É onde colocamos as âncoras em nossa expressão regular. Nós indicamos que os dados que estamos procurando devem ser todos os dados que obtemos. É por isso que especificamos que havia um começo e um fim, e essas âncoras estavam em torno dos dados que estávamos procurando. Então não poderia haver outros dados fora disso quando recebemos esses dados. E assim, especificando os pontos inicial e final. Usar âncoras e usar limites de palavras também é outra regra importante. Então essas três regras podem nos ajudar a ser mais precisos com nossas expressões regulares e regra 1/4 que eu não coloquei neste slide porque eu acho que é intuitivo para a maioria de nós. E é isso que precisamos testar vários conjuntos de dados, não apenas um único conjunto de dados. Certifique-se. Funciona com isso. Deve estar funcionando bem. Então, vamos nos esforçar por expressões regulares precisas para que você possa confiar nos resultados que está obtendo. Tudo bem, vamos passar para o próximo tópico
31. Iniciar com exercícios: Tudo bem, nós viemos para o exercício de script Java por enquanto. Este exercício não vai ser muito difícil. Eu simplesmente quero dar a vocês uma chance de aplicar algumas das coisas que abordamos nesta seção, e vamos fazer isso fazendo com que você use o método de substituição do
rapper de objeto string . Então vamos dar uma olhada na tarefa agora. Neste exercício, você tem um arquivo de jazz de ponto de aplicativo em um arquivo Js de conteúdo, e o que você precisa fazer é repetir usando o método de substituição mudou o texto que é uma parte do texto variável. Um. Há um conteúdo sobre as mudanças da Jess. Assim, a qualquer ocorrência de um dia por dia semana significado. Segunda-feira, terça ,
quarta ,
quinta-feira ,
sexta-feira ,
sábado ou domingo é substituído por segunda-feira. Agora, você obviamente pode verificar para ver o que está no ponto de conteúdo Js Agora eles estão definidos para terça-feira, mas a idéia é que você pode não saber o que vai ser. Isso poderia ser um dia diferente da semana, mas para este aplicativo, você quer alterá-lo para segunda-feira. Agora vá em frente e apenas exiba os resultados para o console. Então não ficamos mais complexos do que isso. Então essa é a tarefa. Vá em frente, experimente quando estiver pronto. Vamos rever os resultados.
32. Acabamento de exercício: Certo, vamos dar uma olhada em como podemos fazer isso agora, antes que eu comece. Eu acho que é importante mencionar que a expressão regular para este exercício poderia ter sido feita de várias maneiras diferentes. Então, se o meu acabar por ser diferente do seu, não deixe que isso te desiluda. Agora. Uma coisa que eu acho importante,
no entanto, no entanto, certifique-se de que a expressão regular que você escreve é precisa o suficiente para que ela não corresponda coisas que você não gostaria que ela correspondesse. E também é preciso o suficiente para ser eficiente na forma como está fazendo correspondência agora na próxima seção, vamos aprender, talvez uma maneira melhor de fazer isso. Mas eu queria que você usasse o que você já aprendeu com expressões regulares. Então vamos em frente e cuidar disso agora, já que eu estou apenas registrando os resultados para o cônsul, tudo o que eu vou fazer é configurar uma variável para a expressão regular, configurar uma variável para o novo texto depois que eu substituí-lo, e, em seguida, eu vou registrar esse novo texto do console. Então, nada difícil. Então, primeiro, vamos configurar a expressão regular. Agora vou usar para bandeiras tanto globais quanto para o caso. Bandeira insensível. Não quero ter que me preocupar com o caso das cartas. Como estou trabalhando com isso agora, a outra coisa que vou estabelecer são limites de palavras. Penso que é importante termos limites de palavras em cada lado desta questão. Essa é a maneira mais precisa de fazer isso. Na verdade, se você não tem limites de palavras, dependendo de como você faz sua expressão regular, você pode acabar pegando essa palavra aqui e substituindo isso. Ok, então essas palavras limites são importantes. Agora, no final de cada semana, dia é a palavra dia. Então eu vou ter isso. O fim da minha expressão regular tem que coincidir com um dia no final. E também a palavra limite irá certificar-se de que nada vem depois disso. Agora, o resto disto é onde pode ser muito diferente. Dependendo de como você escolheu abordá-lo. Eu queria ser mais preciso. E então eu fiz alguns conjuntos de personagens, principalmente como eu fiz isso. Então, para começar, eu fiz todas as cartas que uma semana eles poderiam começar bem ali. Esses são todos os que poderiam começar. Então essa é a primeira coisa que precisa estar nessa expressão para conseguir uma correspondência . E então eu fui em frente e entrou qualquer carta apenas para simplificar as coisas que eu poderia ter feito
passou por um fazendo cada letra desta forma. Mas isso foi provavelmente mais trabalhado no que vale a pena. E a repetição nesse grupo será comum pela razão que eu estou fazendo um em vez dois e quatro em oposição a cinco é porque eu também tenho outro conjunto de caracteres que eu quero fazer depois disso. E esta é a última carta antes da palavra dia e os dias da semana. Podemos lidar com isso com apenas quatro letras, então funcionou muito bem assim. Então, com esta carta contabilizada nesta carta contabilizada, isso significa que as cartas que estarão no meio são uma para algo como segunda-feira ou sexta-feira, ou pode ser até quatro para sábado e quarta-feira. Então foi assim que escolhi fazer isso. Certo, então essa é a minha expressão regular. Vou colocar uma história em quadrinhos, vai declarar outra variável. Esta será a nova variável de texto, e eu vou definir que igual ao texto um substituto. E então eu passei na expressão regular porque a maneira como substituiu funciona é o que nós
queremos substituir e então o que nós vamos substituí-lo. Então, será segunda-feira. Agora isso funciona agarrando essa variável aqui porque as variáveis declaradas aqui e que o arquivo de
script de trabalho é incluído como parte do arquivo HTML. Então isso funciona para nós. Então é isso que eu preciso preparar. Agora vamos em frente e log log para o console. Vou registrar a nova mensagem para o concerto. Guarde isso. Copie este arquivo para que possamos testá-lo. Deixe-me ir para o console. Basta abrir isso e parece que o texto está vindo aqui segunda, segunda, segunda, segunda, segunda-feira ,
lá, e alguns dias não mudaram, então parece que isso está funcionando para nós. Então, como eu disse, não é um exercício muito difícil. Mas dá a chance de aplicar algumas das coisas que aprendemos, especialmente a parte que eu acho que é importante como essas palavras limites. Tudo bem, vamos passar para a próxima seção
33. Opções especificando: Às vezes você pode precisar apresentar opções e uma expressão regular. Pode ser mais fácil apresentar opções em vez de tentar descobrir uma expressão regular que abranja todas essas opções. Por exemplo, na última seção que estávamos tentando combinar todos os dias da semana, nós criamos uma expressão regular muito boa, mas ainda pode estar errada. Vamos dar uma olhada nisso. Então aqui está a expressão regular que criamos. O que eu fiz foi especificar a primeira letra e a última letra que vem antes do
dia da palavra . E então usamos um conjunto de caracteres para as letras entre e repetição, e isso funciona muito bem. Nós também tivemos, ah, limite de
palavras adicionado a ambas as extremidades, e esta expressão regular foi bem sucedida. No entanto, pode
haver alguns erros. Por exemplo, digamos que houve um erro de ortografia aqui. De repente, isso se torna uma combinação porque se encaixa nos critérios que estabelecemos aqui. Portanto, neste tipo de situação, onde há um número limitado de opções e sabemos exatamente quais são essas opções, talvez
seja melhor simplesmente expressar essas alternativas em sua expressão regular. O símbolo pipe divide uma expressão regular em múltiplas alternativas, e eu acho que essa é uma maneira importante de pensar sobre o símbolo pipe. Está se dividindo. A expressão regular em múltiplos são alternativas para que possa corresponder a este ou a
este ou a este. Toda vez que você encontrar símbolo pipe que é um ou para seus
alternativos, você pode pensar nele como o operador ou e script Java. Exceto em JavaScript. Costumávamos canalizar símbolos em uma expressão regular. Nós só usamos um único símbolo de tubo. Então vamos ver como faríamos isso usando alternativas. Eu vou manter a palavra limite, e eu também vou manter a bandeira ignorar caso e uma bandeira global por enquanto. Então a primeira opção é segunda-feira. Então eu entro no símbolo do tubo. A segunda opção é terça. Agora vemos a correspondência de todas as terças-feiras em seu símbolo de cachimbo, então cada vez que colocamos um símbolo de tubo que indica que isso pode ser outro alternativo. Então, como ele está passando pelo texto, ele está verificando tudo contra cada um desses suplentes no último seria domingo . E assim ele sabe que precisa ter limites de palavras em ambos os lados, e então ele pode simplesmente verificar cada palavra para ver se ele corresponde a qualquer uma dessas alternativas que nós especificamos Now. Esta expressão regular impede uma correspondência com algo como este que tem um erro ortográfico, por isso é muito mais preciso. E o símbolo do tubo que expressa alternâncias é algo que é muito valioso e cria nossas expressões regulares. Agora. Uma coisa que eu quero mencionar, vamos ver o que aconteceria sem a bandeira global. Eu desligo isso. Claro, ele só corresponde à primeira opção. Agora seria, pois encontra cada palavra, porque temos a palavra limites. Passaria por cada um desses suplentes e assim que coincidir com um deles, então ele vai parar naquele ponto para que ele não passe e encontrar um jogo para segunda, terça, quarta e quinta e sexta-feira. Ele não faz isso. Só está procurando uma combinação para qualquer um desses suplentes. E quando encontra um único fósforo, então é bom. Não, obviamente, com a bandeira global, poderíamos ter uma dessas em outro dia da semana e encontrar uma combinação para ela. Eu acho que isso foi provavelmente intuitivo, mas eu acho que é importante apontar, então você entende como esses alternados realmente estão funcionando agora. Este exemplo usa um total de sete alternativas. Na maioria dos casos, quando você usa o tubo, você não terá tantos. Você escolherá entre dois ou três suplentes. são geralmente as situações que eu vi agora, também neste exemplo, usamos palavras inteiras segunda, terça, quarta e assim por diante. Mas lembre-se, essas palavras são simplesmente um padrão. Isso é realmente o que está sendo expressado aqui é um padrão. Acontece que vemos isso como uma palavra. E então o que isso significa? Isso significa que podemos usar o símbolo pipe para propor expressões alternativas. Então vamos olhar de outra maneira. Isso pode ser feito muito menos preciso do que o que eu tenho aqui, mas isso mostra que eu posso configurar uma expressão e, em seguida, usar o símbolo pipe para fazer uma expressão
alternativa. Então, primeiro, eu tenho um personagem definido de um a Z e para segunda-feira que precisaria ser repetido três vezes e, em seguida, terminar no dia da palavra. E assim que funciona que encontra uma segunda-feira. Agora eu poderia fazer um símbolo de cachimbo e vamos explicar a terça-feira. Desta vez eu vou usar um limite palavra novamente um através Z, e desta vez lá será quatro repetição de quatro antes do dia palavra que encontrou terça-feira. E então podemos continuar com quarta-feira, que seriam seis. Esqueci-me de incluir a minha palavra limite,
outra palavra limite. Esqueci-me de incluir a minha palavra limite, E então, é
claro, nosso conjunto de personagens. E então nossa repetição de seis dias e um fim com a palavra limite. E assim nós continuaríamos dessa maneira para que você possa ver que eu tenho sido capaz de usar o
dedo do símbolo do tubo alternar através de expressões também. Então, espero que isto se abra. O que é possível com este símbolo de tubo. A capacidade de expressar alternâncias e uma expressão regular não só pode simplificar certas expressões
regulares melhor abre o que você é capaz de fazer. Tudo bem, vamos passar para o próximo tópico.
34. Como usar agrupamento: é hora de dar uma olhada no agrupamento em expressões regulares. O agrupamento é realizado com parênteses. O uso de parênteses e expressões regulares permite agrupar partes dessa expressão. Agora, em JavaScript, podemos usar parênteses, agrupar partes de uma expressão também. Quando usamos impressões script Java Temporada, ele estabelece precedência. código dentro de parênteses é avaliado antes que outros operadores sejam considerados, e isso é verdade com parênteses e expressões regulares também. Estabelece precedência. Agora existem outras aplicações de agrupamento, mas vamos olhar para essas outras aplicações em tópicos posteriores. Eu simplesmente quero introduzir a idéia neste tópico. Vejamos um exemplo que mostra o valor do agrupamento. Não, digamos que você está tentando igualar um número que se parece com o número mostrado aqui . Agora, deixe-me dar-lhe as regras para este número. Consiste em cinco pares, e cada par consiste em uma letra entre A e D e, em seguida, um número entre um e cinco. Então aqui os pares deste número, estamos olhando para cinco pares diferentes, e como você pode ver, cada um começa com a letra e eles estão todos entre a e D, e então o segundo item é um número, e Isso é entre um e luta. E então tem outro par que segue a mesma regra. É um total de cinco pares. Agora, como vamos configurar isso em uma expressão regular? Bem, vamos dar uma olhada nisso. Aqui estão alguns números. Agora, alguns deles seguem esse padrão e outros não. E então vamos tentar descobrir qual fazer em que não usar uma expressão regular. Então nós temos um par e cada par começa com uma letra entre um ND para que possamos fazer um
conjunto de caracteres como esse e ele encontra todas as letras. E então isso é seguido por um número entre um e cinco. E poderíamos fazer um conjunto de personagens para isso também. Agora você pode ver que estamos combinando cada um dos pares individuais. Não estamos igualando o número inteiro. Estamos combinando cada par individual. Então, como repetimos isso? Bem, vamos tentar repetir cinco vezes e ver o que acontece. Bem, agora não estamos combinando nada agora. Por que isso não funcionou bem porque ele está repetindo o item mais esquerdo. Está repetindo o número. Então, se nós viéssemos aqui e colocássemos cinco números, repente combinava, tem uma letra e cinco números cada número um a cinco. Então é isso que está acontecendo lá. Enquanto podemos resolver isso usando agrupamento, podemos fazer ambos em um grupo, e então podemos repetir o grupo cinco vezes. Então vamos colocar parênteses em torno disso. Com certeza, agora temos fósforos e esses são os três que combinam com o padrão que falamos. Tem cabelo, então não combina. Há duas letras juntas que não combinam. Há um seis, então isso não combina. Há dois números juntos aqui, então isso não faz e então usando agrupamento, podemos resolver esse problema. Agora vamos olhar para outro exemplo. Permitam-me que substitua o texto. Agora Isso é semelhante ao exemplo que tratamos no último tópico. Vamos usar os dias da semana novamente. Agora queremos igualar esses dias da semana, então eu vou. Mas segunda e depois vamos usar o símbolo do tubo para nos permitir especificar. Oito especificar alternativas, e assim terça-feira também é uma possibilidade quarta-feira também é uma possibilidade Agora. Eu não quero agarrar esses dias da semana se eles não são uma palavra completa para si mesmos. Então, neste caso, terças-feiras é algo que não quero agarrar. Só quero agarrá-lo se for uma palavra. E então enfraquecer Jack que colocando uma palavra limite em torno deles, certo? Então eu faço limite de palavras lá em um limite de palavras lá. Agora que funciona na quarta-feira porque período realmente qualifica é uma palavra limite. Então quarta-feira está funcionando. Segunda-feira está funcionando, mas por que uma terça agarrada está fora de terça? Não deveria estar agarrando isso. E isso porque, mais uma vez, quarta-feira tem uma palavra limite e segunda-feira tem uma palavra limite antes, mas não depois de quarta-feira. Não tem um antes de terça. Não tem um limite de palavras em ambos os lados,
então eu poderia colocar algo antes da terça-feira também. Ainda há correspondência, mas se eu colocar algo antes de segunda-feira, não corresponderia mais por causa da palavra limite. E se eu colocar Wednesday está aqui no final, não corresponderia mais por causa dessa palavra limite. Então, a maneira de fazer isso corretamente com um único conjunto de palavras encadernadas em vez de colocar
limites de palavras em torno de tudo. Podemos fazer isso com agrupamento novamente. Então eu vou colocar tudo isso dentro de parênteses. Lá vamos nós. Agora, se eu colocar algo na frente da segunda-feira
, não combina muito. Terça-feira não combina por causa da
quarta-feira S. Coloque algo depois, não combinaria. E assim o agrupamento nos ajuda a resolver esse problema novamente. Então, em certas situações que você foi capaz de ver agrupamento pode ser muito valioso. Mas há outras aplicações para ele também. Então vamos passar para o próximo tópico.
35. Usando agrupamento com JavaScript: todas as informações de expressão regular que são abordadas neste curso podem ser usadas, é claro, com JavaScript, bem como muitas outras línguas. Então, por que ter um tópico com o exemplo Javascript específico? Bem, Agrupamento apresenta uma aplicação única e javascript que eu queria mostrar-lhe. Então é isso que vamos fazer neste tópico. Deixe-me explicar primeiro este cenário. Vamos mantê-lo um pouco simples. Digamos que estamos recebendo informações de data como entrada de um formulário ou algo assim. E queríamos pegar essa informação de data e separar o mês, o dia do ano e armazenar essa informação separadamente. E apenas para manter isso simples, digamos que a informação de data que estamos recebendo será necessária para vir em um formato como este. Então começa com os quatro dígitos do ano. Então tem um separador. A menos que veja que separado pode ser um corte. Como mostramos aqui pode ser um hífen ou pode ser um período, e então temos um mês. Digamos que o mês pode ser um dígito ou dois dígitos e, em seguida, outro separador. Mesma situação é o primeiro separador, e então o dia também pode ser um ou dois dígitos, então esse é o padrão que queremos combinar. Mas, além de combinar isso e certificar-se de que a data entrou nesse padrão, queremos separar o ano, o mês e a data. Não, normalmente em JavaScript, quando separamos as coisas, usamos split em uma string para que recebêssemos os dados deste traing e, em seguida, dividimos o que é usado como um separador. Agora, porque estamos permitindo separadores diferentes, torna um pouco mais difícil fazer essa divisão. Teríamos que usar algumas declarações se para descobrir o que é o separador antes de
fazermos a divisão. Mas quando estamos usando uma expressão regular para verificar a entrada de qualquer maneira para garantir que ele corresponde um determinado formato, nós também podemos usar essa expressão regular para dividi-lo enquanto estamos usando agrupamento. E isso ocorre porque o agrupamento captura dados. Então, primeiro, vamos resolver a expressão regular, e então vamos olhar para o exemplo de script Java, então eu vou pular para rejeitar Pal. É onde vamos resolver primeiro. Aqui eu tenho uma data de amostra inserida ano, mês, dia. Agora esses dados estão vindo de um campo de entrada de algum tipo. E então eu quero ter certeza de que esses são os únicos dados que estamos recebendo. E então eu vou especificar o início e o fim desses dados desse fluxo. Agora, a primeira coisa que teremos é um ano agora. Vamos colocar isso dentro de um grupo. Então, colocamos os parênteses e a razão pela qual estamos colocando-os em um grupo é porque isso também
vai capturar esses dados para nós, que
possamos usá-los agora. Queremos quatro dígitos. Agora,entre esse ano, entre esse ano, podemos ter um separador e que separado pode ser um dos três caracteres. Mencionamos um hífen ou um corte. Então, obviamente, precisamos de um conjunto de caracteres e vamos em frente e colocá-los assim. Agora temos outro grupo, e este será um mês, e isso pode ser um ou dois dígitos. E então vamos fazer assim. Coloque um dígito, e então indicamos que a repetição pode ser o um ou dois agora temos outro separador estavam usando esse mesmo padrão novamente para o separador. Eu faria isso como um conjunto de caracteres e, em seguida, um último grupo e esse último grupo vai se
parecer exatamente como o grupo do mês, porque poderia ser um ou dois dígitos também. E lá temos um fósforo. Combina com o nosso encontro. Vamos ver o que acontece se colocarmos vários dígitos ainda corresponderem. Que tal se tivermos um separador diferente? Ainda corresponde para que possamos ver que esta é expressão regular está funcionando para nós. Então temos uma expressão regular, e agora podemos transferir isso e usá-lo dentro do nosso JavaScript. Então eu vou copiar o código da minha expressão regular e eu vou pular para Sublime agora e vamos preparar o relatório de empregos. Agora, aqui estão alguns dados que vamos usar como exemplo agora, como eu mencionei, esses dados estariam vindo de um formulário. Eu só vou colocá-lo aqui para que possamos ver como trabalharíamos com isso agora para começar a trabalhar com ele, precisamos criar uma expressão regular. Vá em frente e cole no que descobrimos que já existe a nossa expressão regular, e eu vou declarar outras variáveis bem, e isso vai ser um array. E é aqui que quero mostrar o que podemos fazer. Com regulares descansando usando o método exato de expressões regulares em JavaScript, podemos quebrar essa informação em uma matriz. Agora, quando olhamos exatamente anteriormente, indicamos que exatamente nos deu algumas informações adicionais. Bem, com o agrupamento, temos ainda mais informações. Ele divide cada um desses grupos em uma matriz. Agora, nós já tínhamos um elemento na taxa, e essa é a entrada. Ele vai salvar isso na posição zero, mas exato vai dividir os grupos em posições 12 e três, e então nós vamos ser capazes de usá-lo. Ok, então deixe-me dar uma olhada nisso. Primeiro. Vamos ver isto primeiro e depois voltamos e terminamos este exemplo, por isso vou salvar esse eu. Basta saltar para trás e atualizar, e então é. Abra o cônsul e dê uma olhada na matriz. E aqui está a nossa posição. Zero são os dados originais, mas notado Posição um é o ano para mês e, em seguida, dia. E assim somos capazes de separá-los, e ainda temos as outras informações fornecidas com o método exato. Então, sabendo que isso nos permite resolver este problema sem usar split. Então vamos saltar para trás e acabar com isso. Então, só para nos dar um lugar para armazenar essa informação, eu vou declarar mais três variáveis como essa, e então nós vamos fazer uma declaração if para verificar se os dados estão corretos. Então, se o teste de ponto de expressão regular usando o método de teste e, em seguida, testamos em dados, se isso é igual a true, que retorna verdadeiro ou falso. Se você se lembrar, se isso for igual a verdade e continuarmos trabalhando com os outros dados, faríamos algum tipo de manipulação de ar. Eu só vou fazer uma declaração de registro do console aqui. Formatos errados Alguns assim. Agora aqui podemos ir em frente e colocar a informação no lugar certo. Posição um. A segunda posição na matriz terá o ano fazer a mesma coisa com o mês. Apenas use o dia. Só uso três. Então aqui temos a nossa solução simples configurada. Vamos apenas ir em frente e dar uma olhada nessas variáveis rodando novamente. Tome um variáveis locais. Estamos recebendo a informação correta. Então atualizamos isso agora se esperarmos um ano 2000 18 meses, três dias nove. Então lá podemos ver que somos capazes de resolver esse mesmo problema sem usar Split. E isso é vantajoso para nós porque se estamos permitindo vários separadores diferentes em nosso jogo, então seria um pouco mais difícil usar split para isso. Mas com a expressão regular já criada, podemos usar o método exato para extrair esses dados. Então esse é um conceito importante sobre o agrupamento e que os grupos irão capturar informações para nós, e vamos analisar isso com mais detalhes no próximo tópico. Então vamos passar para o próximo tópico
36. Entendendo os grupos de captura: parênteses em expressões regulares são comumente referidos como grupos de captura. A razão para a captura da palavra é que eles não apenas agrupam partes do seu padrão, mas capturam essa parte para uso mais tarde, se necessário. Vimos isso até certo ponto com o exercício que fizemos no último tópico. O método exato usou a natureza de captura de grupos para então colocar os resultados em uma matriz . Neste tópico, vamos analisar a captura de grupos com mais detalhes. Agora vamos começar com uma expressão regular simples. Então deixe-me pular para projetos Powell e eu vou colocar um grupo com duas letras e
aqui em nosso texto, eu vou colocar a palavra Yo Yo! E agora estamos captando ambos individualmente. Então, vamos conseguir capturas fora disso agora. E se quiséssemos capturar a palavra completa? Bem, isso é configurado é um grupo, e agora podemos nos referir a esse grupo e fazer com que ele seja repetido. Então, a maneira como nos referimos a um grupo anterior é fazer nosso personagem de escape ali mesmo, e então colocamos o número do grupo que queremos nos referir agora nesta expressão
regular, nós só temos um único grupo, então esse seria o grupo número um. Então eu coloquei um, e lá nós podemos ver que ele captura toda a palavra yo yo em vez de duas
capturas separadas . Muito bem, vamos fazer uma expressão regular mais realista agora. No tópico anterior, estávamos trabalhando com datas, e tínhamos uma expressão regular como esta. Deixe-me colá-lo. E o objetivo disso era capturar datas que tem quatro dígitos ano, um ou dois dígitos mês, um ou dois dígitos dia, e então o separador poderia ser qualquer um desses três caracteres. Então vamos em frente e colocar uma data aqui que possamos capturar. Apenas faça algo assim. Agora, ao olhar para esta expressão regular, você pode ver que temos vários grupos, mas também temos lugares na expressão regular que repetem que são os mesmos. Por exemplo, este separador, este conjunto de caracteres que tem um separador caracteres nele. É repetido aqui, e este grupo é repetido aqui. Este é um ótimo exemplo de como podemos usar grupos de captura, então este grupo em particular, que é o grupo número dois. Poderíamos simplesmente usar de novo aqui no final. Vamos em frente e tentar isso. E lá ainda temos a captura. Então isso indica que estamos repetindo o que está no Grupo dois e este grupo para aqui porque este é o primeiro grupo, o 1º 1 com parênteses. Este é o segundo grupo agora. Poderíamos também repetir esta parte, mas precisamos criar um grupo a partir dela primeiro. Então coloque parênteses em torno disso. Esse é o segundo grupo. Então vamos repetir o segundo grupo lá e, em seguida, repetir o terceiro grupo. E lá continuamos a captura, por isso torna a expressão regular um pouco mais simples. Última um tipo usando grupos de captura quando temos padrões que se repetem. Então, por padrão, um grupo captura, no entanto, podemos fazer um grupo, isso é não capturar, e isso é feito colocando uma pergunta Mark Colon no início do grupo. Vamos dar uma olhada nisso. Então este grupo aqui não estamos repetindo em nenhum lugar para que pudéssemos torná-lo um
grupo de não captura para este exemplo. Não percebo o que acontece quando faço disto um grupo de captura. Então, para fazer isso, colocamos um ponto de interrogação e dois pontos no início do grupo. E agora isso é um grupo que não captura. Mas reparem que não estamos a conseguir mais uma combinação. E a razão é que quando transformamos este grupo em um grupo que não captura, ele não é mais um grupo que podemos nos referir. E então este é realmente o primeiro grupo, e este é o segundo grupo. Então mudamos esses 21 para e então temos uma correspondência. Então transformamos isso em um grupo que não captura. Agora a nossa correspondência com isto e isto. Agora deixe-me mostrar outro exemplo do grupo de não captura. E vamos fazer isso com o exemplo que usamos no tópico anterior. Você sabe, se você se lembra, este é o exemplo que estamos usando em um tópico anterior, e estávamos usando grupos para retirar o ano, o mês do dia usando o método exato. Agora esses grupos estão capturando, e assim nós somos capazes de agarrá-los e colocá-los nessas variáveis a partir da matriz que é criada com exatamente tão exata vontade. Coloque estes em elementos na matriz porque eles estão capturando grupos agora apenas para mostrar
que é isso que ele está fazendo. Vamos fazer um desses um grupo sem captura e ver o que acontece. Vamos descer aqui no final e fazer deste um grupo de não captura. Agora vamos guardar isso. Vamos voltar para a nossa página HTML e atualizá-la e, em seguida, abrir o console e vamos olhar para o ano. Isso está correto. Mês está correto. Dia é indefinido, indefinido porque eu transformei isso em um grupo que não captura. Então agora ele não o coloca mais na matriz e, portanto, não foram capazes de agarrá-lo a partir da matriz. Então, isso mostra como o método exato está usando esses grupos de legendas também. Então, por padrão, os grupos estão capturando agora, quando você gostaria de usar um grupo sem legenda? Por que não usar sempre grupos de captura, mesmo que você não os use mais tarde em sua expressão, ou como parte do método exato como fizemos aqui, por que não usar apenas grupos de captura? Bem, há dois cenários possíveis onde você pode saber onde você pode querer usar
grupos não capturando e o primeiro 1 é, se você estiver criando um grupo e você sabe que não vai capturar, então você pode simplesmente usar que como um grupo de não captura. Mas o segundo cenário, e um que é provavelmente mais aplicável é se você já tem uma expressão regular que você criou e você está usando grupos dentro dessa expressão regular e você está capturando esses grupos, o que significa que você está se referindo a eles mais tarde na expressão regular. Mas então você percebe, Oh, espere, eu quero um grupo essa informação também. Mas ao agrupar essa informação, deixaria de fora os grupos que você já criou. Então, por exemplo, digamos que estivéssemos nesse tipo de situação que está capturando. E então decidimos, espere, eu quero fazer um grupo desses quatro dígitos só por clareza ou por algum outro motivo. Mas se fizermos um grupo, então temos que mudar esses números no final para ter certeza que eles estão se referindo ao grupo de
captura certo . Então esta pode ser uma situação em que usamos um grupo de não captura que simplesmente criamos como não capturando quando entramos nele, e então ele não joga fora nossos grupos a que estamos nos referindo mais tarde, então isso é provavelmente mais prático Razão. Tudo bem, vamos passar para o próximo tópico.
37. Entendendo referências de traseiras de grupos: antes de passarmos para um novo conceito, eu quero ter certeza de que não há confusão sobre referências de grupo de volta, aquelas referências de volta que criamos quando usamos a barra de escape e um número para se referir a um grupo capturado. Esta é uma área que pode ser facilmente confundida. E aqui está o porquê. A referência de volta não se refere ao padrão que você coloca na expressão regular. Ele realmente se refere ao texto que foi capturado. Agora lembrem-se, os grupos capturam texto. Esta parte é importante para lembrar. E então, quando você faz uma referência de volta, ele faz referência ao que é capturado, não ao padrão real. Agora vejamos alguns exemplos que ajudam a reforçar essa ideia. Então aqui em rejeições, amigo, temos um padrão que usamos um exercício anterior. Quero
dizer, remova o padrão muito rápido para podermos ver o texto. Basicamente, temos uma letra seguida por um número seguido por uma letra, seguido por um número e assim por diante, e as letras precisam ser de um a D. Os números de um a cinco. E então, quando eu colar que esses dois personagens define ele, há um três D um a cinco e então vemos quantos fósforos temos. Combina com cada uma dessas peras. Não, o que fizemos em um exemplo anterior é que repetiríamos depois de colocá-los em um grupo como este, e então poderíamos fazer com que ele repetisse esse padrão para três SATs, que fizemos aqui, e nós poderia ver como isso combina. Agora, se nos referíssemos a este grupo? Temos um grupo aqui. E se nos referíssemos a este grupo usando uma referência traseira? Poderíamos então fazer a mesma coisa? Então, se nos referimos a ele uma vez o primeiro 4 em um padrão como esse, bem, a resposta é não. Não temos nenhuma correspondência. E a razão pela qual não temos correspondência é porque a referência traseira não está fazendo referência ao padrão , seu referente referindo o que realmente capturou. E neste caso, a primeira coisa que é capturada é uma. A primeira parte disto. Então, se eu fosse adicionar um aqui, então nós obtemos uma correspondência porque ele corresponde a este grupo e, em seguida, ele corresponde a esta referência traseira que é exatamente a mesma que este grupo. Agora, outra
coisa que pode reforçar. Isto é, se transformarmos isso em um grupo de captura, não
teremos correspondência. Muito bem, deixa-me dar mais um exemplo. Deixe-me me livrar dessa expressão regular, e eu vou copiar em algum texto HTML. Muito simples. Só uma marca forte. E em itálico, é tudo o
que temos aqui. Está bem? Um logo após o outro. Agora, se eu quisesse criar uma expressão regular que capturasse a tag e tudo entre ela bem, e isso garantisse que não havia tags no meio. Capturaria o que temos para começar, e então perceberia, Oh, começamos com forte. Então eu preciso terminar com forte. Então vamos ver como podemos configurar isso. E isso usaria uma referência de volta. Vamos capturar esta parte da etiqueta, e então vamos indicar que qualquer coisa pode entrar no meio, ou certas coisas podem entrar no meio. E então usaremos referência para garantir que esta última parte seja exatamente a mesma. E funcionará porque estamos capturando o texto real, não o padrão. Tudo bem, então vamos ver como tínhamos configurado isso. Então a primeira coisa com que começamos é o suporte de ângulo de abertura. Então queremos criar um grupo porque esta parte vai ser o nosso grupo, e eu vou usar uma barra W porque pode haver certos caracteres de palavras lá, e vamos fazer uma repetição de um ou mais. Então eu quero usar o colchete angular de fechamento, e esse é o fim do meu grupo. E lá você pode ver que capturamos qualquer etiqueta que esteja na frente. Tudo bem agora, entre a tag de abertura e fechamento, poderíamos ter caracteres de palavras ou caracteres de espaço. Isso é o que eu vou dizer. Então vamos fazer um caractere de palavras, e também vamos fazer caracteres espaciais como esse. E este pode ser um ou mais. Agora estamos capturando limpar até lá agora para acabar com isso, podemos fazer um suporte de ângulo de abertura e, em seguida, podemos adicionar a barra e, em seguida, podemos fazer uma
referência traseira . E lá vamos nós. Agora nós capturamos com base na tag, então ele termina nossa correspondência, desde que a tag no final corresponda à tag inicial e isso é porque a referência traseira mais uma vez está se referindo ao texto que é capturado, não ao padrão real. Conceito muito importante para lembrar quando você está lidando com referências de volta. Tudo bem, vamos passar para o próximo tópico.
38. Como usar grupos do Lookahead: Precisamos abordar mais um tópico com o agrupamento na seção, e isso tem a ver com uma coisa que chamamos de grupos Olhar para a frente. Agora, eu não sou um fã deste termo para este recurso. Eu não acho que ele realmente descreve o que esse recurso faz, então deixe-me dar uma definição, e então vamos olhar para alguns exemplos, para que você saiba quando pode ser útil incluir um olhar adiante. Grupo nos permite usar um padrão específico para determinar uma correspondência, mas tudo nesse grupo não fará parte dos resultados. Isso afetará o que for combinado, mas não fará parte dos resultados. Agora. Como isso é diferente de um grupo sem captura? E em segundo lugar, por que você iria querer fazer isso de qualquer maneira? Então, vamos lidar com a primeira pergunta com um grupo de não captura sem índices criados para esse grupo, então não podemos fazer referência a ele ou incluído em nossa solução JavaScript. No entanto, o grupo não captura ainda é uma parte dos resultados. Ainda é uma parte do que é combinado com um grupo olhar à frente. Não faz parte dos resultados. Isso ajuda a determinar o que é combinado. Mas esse padrão que faz parte desse grupo olhar para frente não se torna uma parte dos resultados. Então, mais uma vez, a pergunta Por que iríamos querer usar isso? Vejamos um exemplo agora. Primeiro, para criar um grupo olhar adiante, usamos o ponto de interrogação e igual assinado em conjunto, e aqueles vêm no início do grupo. Logo após a impressão aberta, colocamos ponto de interrogação e, em seguida, o sinal de igual. Como você se lembra, um grupo sem captura usa o ponto de interrogação e os dois-pontos. Então a diferença é que o sinal de igual é oposto ao cólon. Agora, para este exemplo, digamos que queremos corresponder domínios, mas queremos apenas incluir na correspondência a parte do domínio que vem antes do ponto com. Vamos apenas usar ponto com para este exemplo, então vamos primeiro olhar para o que a expressão regular talvez como em rejeições Bow E então uma vez que
fizemos isso em Reg, exp Out também fará isso como uma solução JavaScript porque eu acho que como um trabalho , veremos como isso pode ser vantajoso. Então, primeiro, o próprio domínio pode incluir qualquer caractere de palavra. Então isso é exatamente o que vamos colocar aqui é um caractere de palavra e, em seguida, um ou mais
deles . No entanto, mesmo que só queremos extrair o domínio, a única parte quer corresponder ao domínio, não ao ponto com. Queremos forçar a correspondência a incluir ponto com para que ele não corresponda a menos que o ponto com esteja lá. Então fazemos isso com um grupo de olhar para frente. Então deixe-me começar criando o grupo e, em seguida, um ponto de interrogação é igual a sinal. E agora para fazer ponto com, precisamos escapar do período porque, como você sabe, o período é um caractere especial que representa enquanto o cartão. Então escapamos disso porque queremos usar o período real e então temos a palavra chegar . Certo, então essa é a nossa expressão regular. Agora vamos ver o que acontece se tivermos todas as coisas javascript dot com aviso Recebemos uma correspondência, e a única coisa que corresponde é esta parte do domínio. Ele não corresponde ao ponto com, no entanto, ele força-o a ter um ponto com. Se removermos qualquer parte disso, não
teremos mais uma correspondência. Então este grupo de olhar para frente aqui está dizendo que tem que haver um ponto com depois desta parte do texto, que é qualquer caractere de palavra uma ou mais vezes, então deve haver um ponto com depois disso. Se não houver um ponto com, então não teremos uma correspondência. Agora. Se houver um ponto com, isso pode ser qualquer comprimento até um caractere, tudo bem, então você pode ver como isso está funcionando. Estamos capturando a parte antes do ponto com. Agora vamos ver como isso pode ser útil em um exemplo javascript. Então deixe-me pular para sublime e vamos dar uma olhada nisso. Então aqui temos alguns dados, apenas uma string, e contém três domínios. Todas as coisas são empregos. Tenho ponto com. Google dot com, youtube dot com. Mais uma vez, só
estou usando o ponto com. Só vou simplificar para vermos como isso funciona. Agora queremos extrair a parte do domínio. É tudo o que queremos tirar disso. Então vamos criar uma expressão regular. E mais uma vez será a mesma coisa que tivemos nos rejeitados, amigo. Então vamos ter personagens de trabalho um ou mais. E então vamos criar nosso grupo olhar adiante com um ponto de interrogação. Sinal de igualdade. E então temos que escapar da calma do período. Aí está o nosso grupo de olhar para a frente. Deixe-me fechar nossa expressão regular e eu vou usar a bandeira global aqui porque
vamos usar correspondência com esta solução de script Java e quando correspondências usadas. Se usarmos a bandeira global, ela criará uma matriz de todas as correspondências. Então, há a nossa primeira declaração. Agora vamos declarar uma matriz porque é nisso que vamos colocar os resultados. E nós vamos fazer correspondência e lembrar fósforos feitos em uma corda. Então vamos fazer isso. Data dot match e, em seguida, passar na expressão regular assim. Ok, agora, vamos em frente e salvar isso e vamos ver o que conseguimos. Vamos saltar para a nossa página Web. Refresque-o. Deixe-me abrir o console e deixe-me apenas digitar o array e notar. Temos uma matriz com três itens,
e os itens que são extraídos são a parte do domínio. Tudo bem, então isso funciona bem. Deixa-me só fazer um tweet para isto. Digamos que este tinha a outra parte do ou eu como este. Algo assim. Digamos que entendemos agora. Eu só vou fazer dois deles. Salve essa atualização. Dê uma olhada naquele A Reagan, e teremos os mesmos resultados. Então ele está removendo a barra http. Agora, por que ele está fazendo isso? Bem, porque observe nossa expressão regular, queremos caracteres de palavras que são imediatamente seguidos por ponto com, e portanto, ele está extraindo essa parte dele. Tudo bem, Então característica agradável de um grupo olhar à frente uma coisa agradável que você conduce fazer em JavaScript com um grupo olhar à frente. Tudo bem, agora vamos fazer um segundo exemplo. E para o segundo exemplo, vamos usar o Reg. Exe amigos. Deixe-me pular lá atrás. Vou remover o que já temos. Deixe-me explicar o que vamos tentar fazer. Portanto, queremos criar uma expressão regular para senhas. Agora, obviamente, senhas podem incluir um número de caracteres diferentes, e esses caracteres podem estar em qualquer ordem para que possa dificultar a criação de um padrão. Uma expressão regular para corresponder a senhas. No entanto, com olhar uma cabeça, podemos fazer isso mais fácil porque eu olho para o grupo não consome quaisquer caracteres. Ajuda a determinar a partida. Mas não consome esses personagens. Ele não captura quaisquer caracteres, por isso podemos usar vários grupos olhar adiante juntos. E o que acontecerá é que eles forçarão a senha a conter seu padrão, o padrão definido no grupo olhar adiante. Mas, em seguida, o próximo grupo de olhar adiante permitirá que ele trabalhe em todo o texto, começando no início do texto novamente olhando para ver se ele tem uma correspondência. E a razão disso é porque quando um grupo de olhar adiante determina uma correspondência, ele não consome nenhum desses caracteres. Assim, o próximo grupo de olhar adiante começará no início do texto e verificará se ele corresponde. E, em seguida, o próximo grupo olhar adiante vai fazer a mesma coisa. Certo, sabe, talvez você, enquanto eu explico isso, esteja tendo uma idéia de onde eu estou indo. Mas se não, vamos fazer isso para que você possa se sentar. Então vamos montar este exemplo e digamos que queremos verificar senhas que devem conter pelo menos oito caracteres. Portanto, queremos verificar se há oito caracteres incluídos pelo menos um caractere maiúsculo, pelo
menos um caractere minúsculo e um número. Então essas são as quatro coisas que ele deve conter. Muito bem, vamos ver como faríamos isso. Então, primeiro, esta senha. Queremos especificar que será o início e o fim de um fluxo. Então temos esses dois personagens para começar e terminar agora. Entre isso, queremos colocar nossos grupos de olhar para frente, e queremos colocar nosso olhar para grupos neste ponto logo após o personagem inicial, porque queremos que eles comecem no início desta bebida e verifiquem a tela. Verifique esta string para esse padrão. Então, nosso primeiro grupo de olhar para frente Vamos fazer um. O indica que ele deve ter oito caracteres, então nós primeiro definir. É um grupo olhar adiante, modo que não vai capturar quaisquer personagens, e então que poderia ser qualquer personagem. Então usamos nosso curinga, e então pode ser oito ou mais assim. E então fechamos nossa sorte teve grupo. Então isso vai se certificar de que a string tem um caractere nele, mas não vai capturar nenhum desses. Então, podemos definir outro grupo olhar adiante, e este segundo olhar para o grupo começará no início da string novamente porque este grupo
olhar adiante não consumiu nenhum caractere. E vamos fazer este para letras maiúsculas. Então vamos defini-lo como um olhar para o grupo. E antes de encontrarmos uma letra maiúscula, poderíamos encontrar muitos outros personagens, zero ou muitos. E então colocamos um conjunto de caracteres para caracteres maiúsculos como este. Ok, então veja o que isso está dizendo. Pode haver caracteres à frente disso, mas queremos pelo menos uma letra maiúscula entre A e Z. É o que está dizendo, certo? E como é um olhar para o grupo, ele não vai consumir nada. Então, a próxima olhada no grupo começará no início da string novamente, e este nós vamos fazer caracteres minúsculos, então isso vai parecer muito semelhante ao que acabamos de fazer. interrogação sinal igual, curinga zero ou muitos,
e, em seguida, um conjunto de caracteres de um a Z,
em seguida, fechar estão procurando grupo. Agora temos que verificar mais uma coisa, e isso é um número. Então, mais uma olhada no ponto de interrogação do grupo é igual a Sign define que é olhar para o grupo, seguida, mais uma vez, temos um curinga porque um caractere pode ocorrer antes de um número e, em seguida, outro conjunto de
caracteres de zero a nove. Agora, mais
uma coisa que precisamos acrescentar antes que essa expressão regular funcione para nós. E isso é que temos que especificar. Antes de termos esta âncora final. Temos que especificar que pode haver outros caracteres no final. Então vamos fazer um curinga e, em seguida, um zero ou muitos quantificar ar ar. Certo, então vamos ver como funciona a senha. Então, primeiro, vamos ter um caractere minúsculo do que caractere maiúsculo
e vamos ter um número, e não temos uma correspondência lá porque não há oito ainda, então se adicionarmos mais alguns caracteres, agora
temos seis sete mais
um personagem e teremos uma correspondência. Então, basicamente, estamos combinando isso, mas não conseguimos uma correspondência. Se estes olharem para o futuro, os grupos não são atendidos. Eles têm que ser atendidos, mesmo que não façam parte da captura. Certo, removemos um personagem como vimos. Não corresponde ao menos. Digamos que removemos um número agora, a não ser que o substituamos pela letra. Nós não temos uma correspondência. Coloque um número de volta. Agora temos uma correspondência. Vamos remover as letras maiúsculas e ver o que conseguimos. Sem correspondência. E assim está forçando a ter o que definimos em cada um desses grupos de olhar para frente. E então combina com os resultados por causa do nosso caractere curinga e repetição aqui
no final. Então este é um ótimo exemplo de como criar expressões regulares para uma senha. Uma maneira de fazer isso. E é possível por causa do grupo olhar para frente. Então, um padrão que você pode querer usar em vários lugares e seu trabalho de programação. Tudo bem, vamos seguir em frente.
39. Usando grupos negativos: no tópico anterior descrevemos grupos Olhe para frente que basicamente exigem o
dedo padrão incluir o que é uma parte desse grupo sem que essa informação seja parte do jogo? Assim, o jogo não vai acontecer se ele não atender aquele grupo olhar para frente. Bem, nós também temos um olhar negativo para os grupos. Então, se quiséssemos forçar o dedo padrão em Lee ser um jogo se ele não incluir algo que é parte de um grupo olhar à frente. Então, um olhar regular sobre o grupo tem um ponto de interrogação. Sinal igual e negativo. Olhe para a frente. O grupo usa um ponto de interrogação. Ponto de exclamação. Então vamos dar uma olhada nisso muito rápido. Vou voltar aos rejeitados,
amigo, amigo, com o exemplo em que estávamos trabalhando com senhas. Agora, isso está forçando essa senha. Tenha todos esses atributos pelo menos oito caracteres. maiúscula, letra
minúscula zero a nove. Então, se eu adicionar uma letra maiúscula aqui, não
conseguimos uma correspondência. Bem, vamos mudar isso. Olhe para frente grupo para um olhar negativo para verdadeiro. Então nós apenas colocamos um ponto de exclamação lá e agora nós não temos uma correspondência porque há um número nele. Então está dizendo que deve ter isso. Isto deve ter isto, mas não isto. Então, se eu remover esse número, teremos uma combinação que funcione. Então é assim que funciona um grupo de olhar negativo à frente. Então, pode haver momentos em que você não está simplesmente tentando garantir que ele inclua algo, mas você está tentando garantir que ele não inclua algo. Portanto, esteja ciente de que isso está disponível. Agora, antes de terminarmos este tópico, eu só quero vir aqui para a folha de trapaceiros novamente. Isso é uma parte dos rejeitos, amigo, porque agora cobrimos quase tudo o que faz parte desta folha de truques aqui
nos grupos. E olhe ao redor. É aqui que temos traficado. Isto é o que temos lidado nesta seção são capturados. Os grupos estão de volta referência a um grupo que não captura, olhar
positivo, anúncios e olhar negativo uma cabeça. E a razão pela qual eu queria visitar isso de novo é para lembrá-lo que isso existe. Se você esquecer o caráter exato para o que você está tentando realizar, dê uma olhada na folha de truques. Pode ser difícil lembrar de todos esses personagens porque eles não são necessariamente intuitivos, mas esta folha de truques pode ajudá-lo a lembrá-los e, em seguida, aplicá-los conforme você precisar deles. Tudo bem, vamos passar para o próximo tópico.
40. Iniciar com exercícios: chegamos ao nosso quinto exercício javascript. Vamos aproveitar a oportunidade para aplicar algumas das coisas que aprendemos nesta seção a um exemplo de script Java. Então deixe-me pular para sublime, e eu vou explicar a tarefa. Aqui está o que eu gostaria que você fizesse neste exercício. Eu forneci alguns dados. É uma matriz em um consiste de nomes e notar que todos os nomes estão listados. Sobrenome, primeira vírgula, primeiro nome. É assim que estamos listando os nomes. Então, o que eu gostaria que você fizesse é iterado através dos dados fornecidos nesta variável de dados e usar uma expressão regular. E o que eu gostaria que você fizesse é retornar um novo array, criar uma nova preocupação que tenha os nomes listados, primeiro nome e depois sobrenome. Então, basicamente, você está mudando a ordem dos nomes nesta nova matriz e você está fazendo isso com uma expressão
regular. Então, tire alguns minutos. Dê uma chance a isso. Tente descobrir isso. Quando estiver pronto, pode ver o filme de resultados
41. Acabamento de cinco: Certo, vamos dar uma olhada na solução. Pelo menos a solução que eu vim com suas múltiplas maneiras que isso poderia ser feito. Mas mesmo que você tenha feito de forma diferente do que eu vou mostrar, eu acho que há coisas para aprender com diferentes soluções. Minha abordagem era tentar fazer isso da forma mais eficiente possível. E assim como eu estava mapeando uma matriz para outra, eu escolhi usar o método mapa de um raise para fazer isso. Então vamos dar uma olhada qual é a minha solução. Então, primeiro, eu quero definir a expressão regular. Agora eu gostaria de usar a expressão regular para ter grupos de captura e que eu possa usar esses grupos de captura para reverter o nome. Então, colocando o sobrenome e o primeiro nome em um grupo de captura e, em seguida, usando o método
exato da expressão regular, eu seria capaz de reverter esses. Então essa é a minha abordagem. Então deixe-me definir essa expressão regular primeiro. Agora eu quero ter conta para o sobrenome, e que consiste em caracteres de palavras. Eu poderia ter sido mais alvo com isso. Eu poderia ter feito apenas um conjunto de caracteres de letras e, em seguida, uma repetição. Mas escolhi fazer assim. Então palavras caracteres. Aí está minha repetição. E então houve uma vírgula e um espaço, então eu vou incluir isso na expressão regular. E então vamos criar um grupo para o primeiro nome. Somos personagens de novo e ele se repete. Certo, aí está a expressão regular. Agora quero atribuir isto a uma nova raça. Vou chamar os novos dados da Nouri. E então, como eu disse, vou usar o método do tapete de uma corrida para resolver isso. Agora Matt Method nos permite passar em uma função, e essa função atua em cada valor da matriz e, em seguida, retorna um resultado que será colocado na nova matriz. Então, basicamente, mapa vai percorrer iterado através de cada elemento nesta matriz, e ele vai passar cada elemento um de cada vez, para a função que passamos no mapa. E então essa função irá agir sobre esses dados. Então aqui está a função que eu quero passar para ele. Preciso criar um parâmetro para a função. Este será o valor da matriz que passou em. Agora vamos em frente e definir o corpo da direita. Primeiro, Primeiro, quero executar o método exato. Então eu faço assim com esse valor. Então, o método exato nesse valor e estamos armazenando os resultados nesta variável aqui. Agora, lembre-se quando usamos exatamente ele armazena os resultados em um array e então podemos acessá-los . Agora eu vou incluir um pouco se declaração apenas para ter certeza de que houve uma correspondência. Se não houver correspondência, então não quero tentar devolver algo da matriz ou entrarei no ar. Então eu só vou verificar para ver se isso não é igual saber. Lembre-se, se exato, não encontrar uma correspondência, ele retornará. Não. E assim, se não é igual a saber, então podemos retornar o nome na ordem correta e fazê-lo como retornar primeiro elemento para da matriz. Então nós vamos conseguir Canton oito isso para um espaço e, em seguida, elemento Dwan da matriz como este. Não, se não for compatível, então vou devolvê-lo. Tudo o que eu poderia ter ele retornar o valor, e então ele ainda seria sobrenome, primeiro nome. Mas todo esse hábito voltou? Não, para este exemplo. Certo, então há nosso código que deve fazer isso acontecer. Então vamos em frente e salvar isso. Copie o caminho do arquivo aqui para que possamos testar isso, você sabe, abrir o console, e então eu vou apenas acessar essa nova variável de dados. E então temos uma matriz de valores e notamos que seu primeiro nome, sobrenome mudou a ordem. Certo, então funcionou para nós. Agora, deixe-me apenas mencionar uma advertência aqui. Você não gostaria de fazer isso com uma bandeira global se você colocar uma bandeira global lá, isso poderia custar, hum, problemas. Porque quando você usa um ir a bandeira global com exato ou com teste, o que ele faz é salvar a posição de índice da última correspondência,
e, em seguida, a próxima partida começa nessa posição de índice que iria jogar a correspondência fora. E assim você vai descobrir se você incluir que ele não funciona para todos os nomes, na verdade, funciona para todos os outros nomes e assim nós gostaríamos de ter certeza que isso não era parte de nossa expressão
regular. Então, se você está tendo problemas para fazer isso funcionar e você está fazendo uma abordagem semelhante ao que eu fiz, pode ter sido que você estava usando a bandeira global lá, então você pode querer verificar isso. Certo, então essa é a solução para este exercício de roteiro de trabalho. Vamos passar para o próximo tópico.
42. Introdução Unicode: antes de mergulharmos em usar Unicode com expressões regulares, eu quero fornecer uma breve introdução ao Unicode. Basicamente, os computadores lidam com números de caracteres. Antes de você, Nicole apareceu. Havia vários sistemas diferentes para representar caracteres, e estes foram referidos como caracteres de codificação. Houve muitos problemas com esses sistemas de codificação, mas tudo mudou com Unicode. Unicode forneceu uma forma uniforme padrão para representar caracteres. Você pode pensar nisso como uma tabela gigante que mostra um número e que caractere esse número representa. Por exemplo, aqui está uma tabela Unicode. Aqui deste lado é o início desse número. Você passa o mouse sobre o personagem. Você pode ver o que é a representação Unicode. Por esse personagem. Eu posso rolar para baixo através de um monte desses apenas numerosos, numerosos personagens. Obviamente, dedo do pé eu tenho algo para cada língua que está disponível. Isso exigiria um monte de personagens. Agora, o padrão Unicode fornece espaço suficiente para representar todos os caracteres que você viu nessa tabela. Então, já que estamos trabalhando com caracteres e expressões regulares, podemos precisar ou querer representá-los com o equivalente Unicode. Então, como podemos especificar caracteres unicais ou expressões regulares? Bem, é bem simples. É com uma sequência de fuga, e essa sequência de fuga é cortar você. Então aqui está uma representação de um caractere Unicode barra você e, em seguida, o Unicode. Número 0065 que é a letra E. Então agora sabemos como representar esses personagens. Vamos passar para o próximo tópico e olhar para alguns exemplos.
43. Usando personagens Unicode: Caracteres Unicode Xscape podem ser usados como qualquer outro caractere. E, claro, a melhor maneira de ver isso é com exemplos. Então vamos pular direto para rejeitar PAL e dar uma olhada em alguns exemplos. Agora aqui temos um nome. Isso sobrou de um exemplo anterior que fizemos Andrea Smith. Agora vamos dizer que queríamos ver quais assessores estão disponíveis lá. Poderíamos fazer isso com o caractere Unicode usando sequência de escape 0061 Esse é o
caractere Unicode para um saber Como eu sei isso? Bem, eu olho para um gráfico como este ou seu computador pode ter uma maneira de procurar diferentes
caracteres Unical , bem como qualquer método que você quiser usar. Mas eu posso ver aqui que um A maiúsculo é 0041 minúsculas, um 0061 E então eu estava entrando 0061 Observe que ele está agarrando a maiúscula e minúscula um sábio fazendo isso por causa da nossa bandeira. Se eu fosse remover a bandeira que ignora maiúsculas e minúsculas, então é claro que teríamos a letra A minúscula porque esse é o caractere Unicode que estavam combinando
atualmente é minúscula A. Mesmo que ainda tenhamos uma bandeira global em, ele não agarra o primeiro dia porque isso não é um jogo agarra um segundo a. Agora nós também podemos usar caracteres unico como qualquer outro personagem se apenas para colocar um personagem em uma expressão regular. Então, se eu quisesse fazer um conjunto de caracteres, eu poderia fazê-lo com a sequência Unicode Escape também. Muito apenas ir algumas letras mais longe no alfabeto no final do conjunto de caracteres, e havia agarrando D E E e um agarrar. Tudo isso é uma parte disso, de modo que permite que você veja que Unicode pode ser usado em um lugar de outros caracteres. Mas normalmente não é assim que usamos. Nós não usamos isso dessa maneira. Nós o usamos para caracteres que podem não ser fáceis de digitar,
e, portanto, queremos usar a representação Unical desse caractere. Então deixe-me copiar e alguns caracteres que nem sempre sabemos como digitar. Cada um deles pode ser encontrado em uma expressão regular simplesmente colocando o caractere exato na expressão regular como esta. Eu posso colocar o símbolo da libra lá e ele vai encontrá-lo. Ou podemos usar os equivalentes Unicode. Então, mais uma vez, esse é o equivalente Unicode para o símbolo da libra. Agora como? Eu não sei se mais uma vez, eu olho para aquela mesa. Digamos que queríamos obter o símbolo de direitos autorais que seria um nove, e não iria pegar o símbolo de direitos autorais tão geralmente usado para coisas que nós sempre podemos digitar rapidamente que às vezes por que nós vamos usar o caractere Unicode. Mas lembre-se, você também pode apenas acompanhar o personagem em sua expressão regular. Ou, se você souber como digitá-lo no teclado, digite-o em expressão regular. Agora, mais
um exemplo. Digamos que temos alguns textos que estavam tentando corrigir, e ele usa aspas inteligentes. E então estamos tentando nos livrar das roupas inteligentes porque sabemos que isso causa problemas com qualquer programador que o processe. Então, se tentássemos agarrá-los apenas inserindo um conjunto regular de citações, isso não vai pegá-los. Nós precisaríamos terminar com a citação inteligente mais uma vez, poderíamos pagar em segundo lugar ou usar o equivalente Unicode, que neste caso, para um um C Nós vamos obter a abertura um e um D nós vamos obter a citação inteligente de fechamento aqueles em conjunto de
caracteres, e lá podemos pegá-los, e então poderíamos usar um substituto para colocar em uma citação regular. Portanto, a parte importante a saber com Unicode é simplesmente como inseri-los. Se você se deparar com uma situação em que você precisa inserir o equivalente Unicode, então você saberá como. Esse é o propósito desta pequena seção sobre Unicode. Era mais uma coisa que precisamos conversar, então vamos para a próxima seção.
44. Entendendo recursos Unicode de ES6: as representações de caracteres Unicode que temos usado até agora suportam quatro
caracteres decimais x A. Então temos vindo a usar uma barra você e, em seguida, quatro caracteres que variam de um zero a F que nos
permite representar X um números decimais. Agora, com esses números decimais Hexi, há muitos números para representar cada caractere que você normalmente deseja usar. No entanto, existem alguns caracteres estendidos que não podem ser representados usando quatro
caracteres decimais Hexi . Um exemplo disso é o caráter de fenda do problema usado na música. Como mostrado aqui neste slide, ele requer mais de quatro caracteres decimais hexi para defini-lo. Então, o que acontece se entrarmos em mais de quatro? Bem, deixe-me abrir rejeitos, amigo. Aqui eu tenho um personagem de fenda problema aqui. Agora vamos dizer que queremos representar isso para que façamos uma barra você eo código para que é um de 11 estavam bem. Agora, o último que temos que entrar é um e. Você pode ver o que rejeita amigo faz, também, que ele não considera mais que é uma parte da fuga Unicode. Agora se torna um personagem real. E. Então, o que fazemos sobre isso? Bem, tradicionalmente, temos representado personagens como esse, usando dois conjuntos como eu mostro aqui, Aqui está o nosso primeiro Unicode sat do que um segundo set. O problema com
isso, isto é, que é contado como dois personagens, então essa não é uma solução completa. Bem, partir de E s seis, temos uma nova bandeira para expressões regulares que muda a forma como processamos caracteres Unicode. Agora essa bandeira é a letra que você. E quando essa bandeira é usada, ele considerará um caractere estendido como um único caractere. E também podemos representar esses caracteres estendidos como este onde temos uma barra você e , em seguida, temos as chaves. E dentro de lá, temos mais de quatro números hexi hexi decimal, e isso nos permitiria representar esse problema. personagem de fenda agora rejeita Pal não suporta isso. Você sinaliza este Unicode preto, então vamos dar uma olhada em alguns exemplos no Cônsul. Deixe-me abrir o Cônsul para a primeira coisa que quero fazer é configurar uma variável que tenha esse personagem nele. Então G Clef agora tem esse personagem nele, além de ah, hífen e depois a palavra classe. Então vamos dar uma olhada no que aconteceria enquanto usamos isso dentro da expressão regular. Então, primeiro, vou criar uma expressão regular e quero que isto corresponda no início
do fluxo. E então, um único personagem. Há nosso caractere curinga que levanta representa um caractere e, em seguida, bater palmas. Agora vamos testar isso contra a variável que criamos. Não, eu vou. Teoh, remova a bandeira para começar e vamos ver o que acontece. Nós obtemos um falso nós obtemos um falso porque mais uma vez, ele considera esta parte aqui como mais de um personagem. Então não corresponde a essa expressão regular. E se incluíssemos a bandeira Unicode? Vamos dar uma olhada nisso. Deixe-me acrescentar que na deles são sinalizador Unicode. Agora, quando pressionamos Return, obtemos um verdadeiro que corresponde a isso. Agora vejo que é um único personagem por causa daquele apartamento. Agora, menciono também
que podemos utilizar uma nova forma de representar também esse carácter se utilizarmos a bandeira
da UE. Então deixe-me inserir isso. Então aqui está a nossa representação. Há cinco caracteres decimais Hexi lá para representar esse caractere de fenda de problema. E vamos testar para ver se obtemos um verdadeiro e obtemos um falso e a razão pela qual temos um falso é porque ainda não incluímos o sinalizador Unicode. Então, uma vez que eu adicionar esse sinalizador Unicode em, então nós temos um verdadeiro assim como mencionado, isso é algo que se tornou disponível com, sim ,
seis, não o tipo de coisa que você vai usar extensivamente. Mas eu queria ter certeza que você está ciente disso. Então, se você se deparar com um caractere estendido que você precisava usar e expressão regular, você saberia como fazê-lo. Tudo bem, vamos passar para a próxima seção.
45. Aplicando expressões regulares: nesta seção do curso, vamos estar aplicando expressões regulares. Isso lhe dará a chance de ver expressões regulares riel e como você pode usá-las para
corresponder a determinados critérios. Agora vamos ter vários exemplos nesta seção e com cada exemplo. Se você quiser que você compposite vídeo depois que eu introduzi o exemplo que vamos
tentar corresponder e você pode experimentá-lo por conta própria, e então você pode reiniciar o vídeo e ver como você fez agora. Esteja ciente se você optar por seguir este caminho que expressões regulares podem vir em uma série de variedades, então sua solução pode funcionar muito bem. No entanto, pode não ser exatamente como a minha solução, mas a ideia é o dedo do pé. Saiba o que você pode fazer com expressões regulares. Veja alguns exemplos de dados da vida real que você deseja combinar
e, no processo, ele lhe dará prática com expressões regulares. Então vamos em frente e passar para o primeiro exemplo
46. Correspondência um endereço de e-mail: neste exemplo, vamos analisar a correspondência de um endereço de e-mail. Agora. Esta é uma expressão regular que poderia ser feita de várias maneiras diferentes. Depende de quão rigoroso você quer obter com sua expressão regular. Então vamos primeiro lixo para rejeitar Powell. Deixe-me falar primeiro um pouco sobre um endereço de e-mail nas partes que nos ajudarão a determinar o que precisa corresponder. Então vamos olhar umaexpressão simples e
regular, expressão simples e
regular, e então vamos olhar para uma que é um pouco mais rigorosa. Então, primeiro,
se olharmos para as partes de um endereço de e-mail, há alguns impostos, alguns caracteres. E depois há o Símbolo no. E então há um período de domínio e, em seguida, uma rede com ou um número de coisas diferentes no final. Então, para todas essas partes, nós realmente não sabemos quais personagens ou quantos personagens estarão aqui no final. Fazemos isso pode ser de 3 a 4, normalmente ,
enquantopode ser também enquanto , mas temos algumas diretrizes, mas não muito. Portanto, provavelmente não queremos limitar o número de caracteres. Nós provavelmente só queremos tentar combinar com base em curingas com base em um número de caracteres que talvez não consigamos identificar. Então vamos primeiro olhar para um exemplo simples. Então, se jogarmos um curinga aqui, obviamente corresponde a cada personagem que está lá, e então se indicarmos que curinga pode ser ganha ou mais, então teremos uma única partida. Agora vamos explicar o símbolo at. O símbolo at vem em um lugar, e não pode vir em outros lugares. Então, se colocarmos um símbolo em aqui, então temos a primeira parte do endereço de e-mail correspondente com símbolo ainda. Então, seguindo o símbolo at, vamos fazer outro curinga, e isso pode ser um ou muitos, e então isso está combinando todo o caminho através do ponto. Agora sabemos também que haverá com certeza um ponto ou um ponto. E então vamos especificar que isso seria parte do endereço de e-mail. Temos que escapar disso porque se não queremos representar o curinga, então escapamos dele e, mais uma vez, depois disso, podemos ter um ou vários caracteres, e aí temos uma correspondência no nosso endereço de e-mail. Não, é uma expressão regular simples, e identifica as partes de qualquer endereço de e-mail. Mas vamos expandir isso. Existem certos caracteres que você não pode ter nas diferentes partes. Por exemplo, nesse símbolo não pode estar nesta parte ou no domínio. Não pode existir lá. Isso também é ilegal, espaços. Não posso ser um endereço de e-mail. E então vamos abordar a expressão regular eliminando algumas coisas que alguém pode ser capaz de colocar em que nós não queremos uma correspondência. Por exemplo, se houvesse um espaço aqui que correspondesse a ele, mas esse não é um endereço de e-mail correto, então vamos ver se conseguimos resolver essa limitação. Então vamos começar isso especificando este início e o fim da string. Então, colocando ambos os caracteres de início e fim lá agora eu quero criar um conjunto de caracteres para cada parte e separar cada parte por um símbolo at e um ponto. Então vamos criar nosso primeiro segundo personagem, e eu disse que vamos eliminar aqueles que não podem fazer parte disso. Portanto, queremos negar este conjunto de caracteres para que ele corresponda a todos os caracteres, exceto aqueles que estão neste conjunto de caracteres. Um desses deve ser um espaço. Nós não queremos uma correspondência com esta base, e nós não queremos um símbolo correspondente ao at. Não, pode
haver outros personagens que você pode querer jogar mais tarde, mas isso vai conseguir o que precisamos. Então não queremos combinar espaço ou no Símbolo. Agora queremos que isso repita,
Então, nem um único caractere queríamos corresponder um ou mais e, em seguida, nesse ponto endereço de
e-mail deve ter um símbolo at antes do domínio. Certo, então queremos outro SATs de personagem. E neste caractere SATs, queremos combinar tudo, exceto um espaço novamente, um caractere tipo de espaço. Eu deveria dizer que isso poderia ser New Line é, embora não seja apenas espaço, nós não queremos uma correspondência com esse símbolo. E nesta parte aqui, não
queremos que seja um período também, porque o período começará no fim disso. E então vamos colocar isso neste personagem definir uma ondulação e que pode repetir uma ou mais vezes, e depois, seguindo essa parte, temos um ponto Agora temos que escapar do ponto aqui. Nós não escapamos aqui porque dentro de um conjunto de caracteres, mas fora disso, personagens que nós precisamos para escapar dele. E então temos mais um conjunto de caracteres, e queremos combinar tudo, exceto caracteres de espaço e nesse símbolo, e então isso pode repetir também. E lá temos uma correspondência com o nosso endereço de e-mail. Mas se houver um espaço, não
teremos uma correspondência. Se há um símbolo em que não deveria estar, não
temos uma correspondência. Então agora isso funciona muito bem para nós agora. Poderíamos ficar muito mais restritivos. Pode haver outros caracteres que não seriam incluídos. Pode haver certas faixas, por isso queremos colocar em coisas como a parte do domínio do endereço de e-mail. Mas isso funciona muito bem para nós agora, algumas coisas para estar ciente de lembretes sobre expressões regulares. Então o símbolo da cenoura é usado para duas coisas diferentes. Símbolos de cenoura usados para marcar o início da string, o início da linha. Também é usado para negar dentro do conjunto de caracteres, então esteja ciente de que o caractere de espaço, lembre-se, não indica apenas um espaço, mas é espaços de esposa, então pode ser uma aba. Pode ser uma quebra de linha. Pode ser um espaço. Por isso, é responsável por esses. Falei sobre isso durante os exercícios, um personagem espacial, mas quero ter certeza de que representa as outras coisas que
discutimos no tribunal. E então eu também notei que eu posso colocar um ponto aqui e nós estávamos tentando evitar isso por ter este período negado neste conjunto de caracteres. Então deve corresponder a tudo, menos a um período. Então, por que está combinando com isso? Bem, o que está acontecendo aqui, eu percebi, cometeu um pequeno erro. Então o que está acontecendo aqui é que este período está combinando bem aqui e então tudo o resto está combinando com este conjunto de caracteres, e então precisamos negar um ponto nesta parte também. Então deixe-me colocar um ali e ali. Se eu remover isso, não teremos uma correspondência agora, ela volta para uma partida, então isso funciona melhor para nós. Então certifique-se de adicionar esse período neste personagem disse também, então espero que você aprenda algo com isso, espero que você tenha permitido rever expressões regulares. Agora vamos passar para o próximo exemplo
47. Correspondente um identificador no Twitter: este exemplo vai ser um pouco mais fácil do que o último. Quando fizemos isso corresponde a um nome do Twitter um pouco mais simples do que um endereço de e-mail. Não há tanta variação que pode acontecer com um nome do Twitter. Se você quiser experimentar isso por si mesmo, pause o vídeo e reinicie novamente quando estiver pronto para conferir. Agora é assim que vamos fazer isto. Bastante simples. Tenho a minha alça do Twitter sentada aqui para combinar. Isto não é tão difícil. Nós queremos especificar o início e o fim da string, então vamos colocar ambos em. Então estamos assumindo que o nome do Twitter foi inserido e estamos combinando para ter certeza de que está correto . Agora começa com o personagem at, então vamos em frente e colocar isso em. E então temos caracteres de palavras que confirmam que podem vir depois disso. Agora, lembre-se o que os caracteres de palavras representam. Eles representam as letras A a Z e os números de zero a nove, e eles também representam o sublinhado. Então pode ser tão simples quanto o que temos aqui. Precisamos adicionar um caractere de repetição porque queremos que pelo menos um deles exista, e pode ser o maior número possível. E então temos uma correspondência lá. Bastante simples. Agora, e se quiséssemos extrair o nome do Twitter e armazená-lo e queremos distorcer da
mesma maneira,a mesma maneira, menos que digamos, isso é possível, que alguém pode inserir o símbolo at e alguns não podem. E então queremos armazenar a parte do identificador do Twitter sem o M por cento. E então, quando o usamos ou exibido ou o que seja, vamos adicionar o n por cento para que pudéssemos fazer isso transformando isso em um grupo de captura se parte dele que representa a parte da palavra do identificador do Twitter, e ele iria capturar isso. E, em seguida, com get JavaScript, poderíamos simplesmente armazenar essa parte da partida agora. Além disso, queremos levar em conta as situações em que eles podem não inserir o percentual M. E então vamos inserir um ponto de interrogação depois que indica que isso pode ser zero ou um . Então, se alguém entrar em Amper Sands, não combina. Se alguém imperador entra no e comercial, ele não corresponde, e a correspondência também inclui um grupo de captura que podemos usar esse grupo de captura com JavaScript para extrair o que queremos e armazenar. E se um e comercial for inserido, o grupo de captura não pega o e comercial porque isso não faz parte do
grupo de captura . Então isso está combinando com um nome no Twitter e um pouco de discussão em torno disso. Tudo bem, vamos passar para o próximo exemplo.
48. Como testar senhas: o próximo aplicativo que vamos olhar é testar senhas agora. Nesta aplicação, vou falar sobre as expressões regulares que usaríamos. Mas eu também vou olhar para uma solução de script Java de como testar senhas. Agora pense sobre o que você faria com senhas que você deseja testar para ver se ele corresponde determinados critérios, por exemplo, se ele é de um certo comprimento se ele contém caracteres maiúsculos, caracteres
minúsculos, números, caracteres
especiais, quaisquer que sejam seus critérios de senha, isso é o que você precisa verificar agora. Às vezes, fato na maioria das vezes é mais fácil fazer isso com expressões regulares separadas, então você cria várias expressões regulares
e, em seguida, você testa a senha em cada uma delas, certifique-se de que ela é válida, e quando ele atende a todos esses critérios, então você vai em frente e diz que a senha está correta. Então, sabendo que se você gostaria de experimentar isso em seu próprio primeiro vá em frente e positar vídeo. Então, uma vez que você está pronto, reinicie e você pode assistir a solução e eu vim com tudo bem. Então, primeiro, vamos falar sobre as expressões regulares que podem ser usadas para testar uma senha então deixe-me pular para rejeitados, amigo. Eu tenho uma senha aqui que foi gerada usando um gerador de senhas. Eu só coloquei os critérios e ele criou a senha. Uma vez que temos aqui e você pode ver que temos letras maiúsculas, temos números. Temos letras minúsculas, e também temos caracteres especiais. Agora vamos dizer que queríamos que as senhas fossem de a. Certamente elas precisavam ter pelo menos oito caracteres, mas não mais do que 32 caracteres. Então, é
claro, a maneira que poderíamos facilmente fazer isso é colocar nosso personagem que especifica o local inicial, em
seguida, nosso caractere curinga. E então especificamos o comprimento, e podemos ver que temos uma correspondência lá. Então, o fato de que corresponde a essa expressão regular nos diz que ok, nossa senha correspondeu aos critérios de comprimento. Então vamos dizer que queremos ter certeza que tem caracteres maiúsculos. Isso é simples. Fazemos apenas um conjunto de caracteres, e se conseguirmos uma correspondência, saberemos que cumpre esses critérios. Podemos fazer a mesma coisa com minúsculas, e podemos fazer a mesma coisa com números como esse. Então todas essas partidas acontecem agora. E se quisermos fazer personagens especiais? Bem, há duas abordagens para isso. Você pode listar todos os caracteres especiais que você permitir dessa forma. Você sabe que ele só combina com os caracteres que você precisa. Ou você poderia simplesmente fazer algo assim, um conjunto de caracteres onde nós negamos no início do portão. Qualquer coisa que não seja um número, uma letra maiúscula ou uma letra minúscula, e você pode ver que temos alguns fósforos lá. Essa é uma maneira de fazer isso. Certo, então essas são as expressões regulares que usaríamos para testar uma senha. Agora vamos dar uma olhada em uma aplicação JavaScript disso, então eu vou pular para sublime para isso. Agora aqui está o que temos. Eu configurei uma variável de senha que contém a mesma senha que estamos trabalhando rejeições, amigo. Então eu configurei várias variáveis para definir as diferentes expressões regulares. Aqui está a do tamanho maiúsculo. Números minúsculos no nariz, um para caracteres especiais. Eu fui em frente e criei uma expressão regular que tem um conjunto de caracteres. Aqui está o lado de fora do conjunto de caracteres, e ele lista todos os caracteres especiais que podem estar lá. Então, todos esses personagens especiais do ar aqui nós fazemos algum escape para obter
personagens especiais que exigem escape. Tudo bem, aqui vamos nós também. O hífen requer a fuga. Essa barra requer escapar e, em seguida, o quadrado o colchete de fechamento requer escapando. Então essas sequências de escape, a fim de especificar esses caracteres o raster apenas o
caractere real que estamos tentando corresponder. Então eu tenho todos esses configurados e, em seguida, eu simplesmente faço uma instrução if e eu usei teste, usar o método de teste de expressões regulares em JavaScript e testar a senha. E isso está tudo incluído em uma declaração se, se obtivermos um verdadeiro a partir desse teste um verdadeiro a partir desta tarefa um verdadeiro a partir deste teste e assim por diante. Se todos aqueles iguais a verdade, então ele corresponde,
caso contrário, ele não corresponde. Então vamos dar uma olhada nos resultados disso muito rápido. Então deixe-me saltar para atualizar isso e, em seguida, se olharmos para o concerto, podemos ver que essa senha específica corresponde Agora esta solução de script Java poderia facilmente ser transformada em uma função que então poderíamos chamar a qualquer momento que quiséssemos testar a senha. Então vamos ver como fazemos isso. Vamos chamá-lo de, uh, verificar passado, e nós vamos que tem uma senha passe para ele que nós podemos então verificar. Então eu tenho minha função configurada. Deixe-me apenas copiar todo este código aqui e colocá-lo dentro da função em Damp que Now What ? Eu quero mudar com a minha declaração if, como eu simplesmente quero que ele retorne true ou false, se ele corresponde a um retorna true. Caso contrário, ele retorna falhas. E assim eu posso usar essa função sempre que eu quiser verificar uma senha e ver se ela corresponde aos nossos critérios para certas senhas. Então vamos em frente e verificar este. Vamos fechar para o cônsul o resultado de chamar o passe de cheque. Ele vai passar na senha esta variável aqui que será armazenado nesta variável e, em seguida, que será o que é verificado em nossa função. Então vamos ver se temos um verdadeiro retorno para aquela atualização e lá vamos nós. Temos um verdadeiro para que é uma função que poderia ser usada em qualquer situação para verificar senhas. Obviamente, se você tem critérios diferentes em sua passagem, você mudaria suas expressões regulares. Mas fora
isso, poderia ser reciclado. Tudo bem, vamos passar para o próximo tópico.
49. Usando o de substituição com expressões regulares: neste aplicativo vamos dar uma olhada no uso de string dot Substituir com
expressões regulares Agora, antes de dar uma olhada no problema. Quando eu resolvi, vamos apenas rever substituir muito rápido. Então eu vou abrir o cônsul aqui, e eu vou inserir uma declaração que usa um substituto. Então vamos dizer que eu tenho algum código HTML e eu quero mudar a tag B que produz Bold. Quero mudá-lo para uma marca forte. Então vamos ver como podemos fazer isso. Vou usar o consulado,
o dedo do pé, registrar os resultados. Podemos ver o que acontece agora. Primeiro temos uma corda. Isto é que o código 80 Mel vai ser contido em um fluxo, simplesmente vai ficar assim. Algo não muito complexo, mas pode ilustrar o uso de substituição. Agora substituir é um método no rapper objeto string. E assim qualquer string que temos podemos usar substituir para modificar que para substituir uma parte
dessa string por outra coisa, e confinamos a correspondência com texto regular ou podemos usar uma expressão regular. Então vamos olhar para nós usaríamos expressão regular. Então, para começar a usar, substituir usamos a sintaxe de pontos Agora, como você pode ver, eu estou fazendo isso diretamente. String do Office. Pode ser uma variável que contém uma string. Mas aqui está a corda real em si. Então dentro de Prince vê a primeira parte é a parte. Quero um fósforo. E então aqui está o porquê. Eu vou usar a expressão de rádio agora eu quero substituir todas as ocorrências, então eu vou usar a bandeira global. Então usamos uma vírgula. Então este é o jogo. Agora indicamos o que queremos substituir o que corresponde com, e que será uma string. E então basicamente o que vamos fazer é encontrar cada ocorrência de ser
maior que símbolo e substituí-lo por fortes, maiores do que símbolos touros que terminam, Substituir mais. Prince vê o concerto final fora log Não, coloque nosso ponto e vírgula. Vamos ver o que temos. Então, como você pode ver, ele passou e substituiu todas as tags B por uma tag forte, então uma rápida atualização de como substituir funciona. - Não. Lembre-se, isso pode ser uma variável também. Então, se eu contivesse uma string, poderíamos usar ponto Substituir nisso. Certo, então é assim que usamos o substituto. Agora, vamos olhar para o problema que vamos tentar resolver com isso. Então pulou um sublime. O que quer dio é tomar esta matriz de nomes e notar que os nomes são sobrenome do que primeiro nome. Queremos pegar esse conjunto de nomes. Queremos trocá-lo. Queremos trocar a ordem. Então o primeiro nome vem antes do sobrenome. Agora, na minha solução, eu vou usar o método mapa de um aumento se você não está familiarizado com mapa e gostaria de
tentar isso sozinho. Todos incluem um link para o vídeo do YouTube que criei sobre o método do mapa. A razão pela qual eu quero usar mapa é porque mapa retorna em matriz. Isso é basicamente o que ele faz. E assim, sempre que não temos array e queremos criar uma nova matriz a partir dele, mapa é uma escolha lógica. Então, se você quiser tentar isso primeiro, vá em frente e
posure, tente e reinicie quando estiver pronto. Muito bem, vamos ver como conseguiríamos isto. Como mudaríamos os nomes usando expressão regular e usando mapa. Então agora, como eu disse no mapa de introdução retorna em matriz e queremos saber raça. Então vamos em frente e definir esse novo carneiro. Só vou chamar de novos nomes, e vamos definir isso igual ao mapa de ações de nome. Agora mapa é uma função de ordem superior, por
isso, porque é uma função de ordem superior, passamos em uma função como o parâmetro, e essa função irá processar cada elemento na matriz e, em seguida, retornar os resultados e cada um dos esses resultados que são retornados bem. Seremos colocados no novo array, então vamos em frente em si não pode funcionar. E, em seguida, entre parênteses, eu vou indicar o nome como a variável que a variável vai conter cada uma
dessas cadeias à medida que percorre a matriz um por um. E assim, uma vez que são cordas que podemos usar, substitua isso. Então vamos em frente e ver como faríamos isso. Não, com mapa, a função precisa retornar um valor porque esse valor vai ser colocado na nova matriz. Então nós vamos retornar nome ponto Substituir Agora aqui é onde nós inserimos a expressão regular . Agora o que vamos fazer é criar uma expressão regular que irá capturar. Vamos usar , grupos de
captura, porque queremos repeti-los. Então queremos capturar o sobrenome e o primeiro nome, e então queremos que você os reutilize novamente. Mas queremos colocá-los na ordem oposta e, em seguida, colocar entre eles um espaço irá remover a vírgula e colocar um espaço entre eles. Então vamos ver como faríamos isso. Vamos configurar uma expressão regular primeiro, então queremos capturar grupos. O primeiro grupo de captura será quatro O sobrenome. Então vamos apenas inserir caracteres de palavras e podemos ter um ou mais desses. Então queremos ter certeza de espaço vírgula, isso é o que separa os nomes. E então vamos criar outro grupo de captura e isso você vai usar a mesma coisa? Um caractere de palavras? Não e um ou mais caracteres de palavras. Portanto, há uma expressão regular, e desde que o nome tenha caracteres de palavra do que um comentário de espaço seguido de
caracteres de palavra , ele produzirá uma correspondência. E então
, como usamos parênteses, ele irá capturar essas partes dele e isso nos permitirá usá-lo na segunda parte
da substituição. Então colocamos uma vírgula e, em seguida, dentro de aspas, queremos indicar o segundo grupo de captura. Fazemos isso com um cifrão para então queremos separar isso com um espaço. E então queremos indicar o primeiro grupo de captura. Verei como fizemos isso. Assim, o segundo grupo de captura será o primeiro nome. Então vamos colocar um espaço em primeiro lugar. Capturar grupo será o sobrenome. Ponha isso no final, então é assim que funciona. Então vamos em frente e salvar isso e então deixe-me copiar o caminho do arquivo aqui para que possamos
experimentar isso . Tudo bem, abra o cônsul. Vamos dar uma olhada nisso. Variável de novos nomes. Lá temos ele. Temos agora uma matriz de nome sobrenome, e há um espaço entre eles. Não há mais vírgula desde que os colocamos na ordem do sobrenome. Então, se você foi capaz de resolver isso em seu próprio fantástico se não, eu espero que você aprenda algumas coisas novas sobre substituir e como você pode usá-los com
expressões regulares e como você pode usar grupos de captura com esse método de substituição, ele pode tornar-se muito útil na resolução de certos problemas. Tudo bem, vamos passar para o próximo tópico.
50. Correspondendo uma palavra em outra palavra: nesta aplicação, vamos dar uma olhada em como encontraríamos uma correspondência de alguma palavra, algum conjunto de caracteres. Mas faça essa correspondência depender se outra palavra está próxima ou próxima a agora. Pense na aplicação disso. Pense em como você pode usar esse tipo de expressão regular em várias
situações diferentes . Temos um exemplo específico aqui encontrando uma palavra, e queremos ter certeza de que outra palavra está por perto. Esse é o nosso exemplo específico, mas isso pode ser aplicado de outras maneiras. Agora vamos resolver isso em rejeições, amigo. Mas antes de darmos uma olhada na solução, você pode tentar. Então, se você quiser parar o vídeo de vez em quando começamos quando você estiver pronto para continuar. Certo, vamos dar uma olhada nessa solução. Então deixe-me saltar para os rejeitados, amigo primeiro. Tudo bem, digamos que queríamos combinar a palavra,
esta aqui, esta aqui, mas só queríamos fazer isso se juntos também aparecessem ao lado dela. Agora estou começando com o caso mais simples primeiro, e então vamos torná-lo um pouco mais difícil. Então, a maneira como lidamos com isso é primeiro colocar limites de palavras em uma expressão regular quer incluir limites de palavras. Agora eu vou colocar parênteses e criar um grupo aqui, e eu não quero que ele seja capturando grupo, então eu vou ter certeza de que ele é um grupo que não captura agora. Obviamente, esta parte não é necessária para você resolvê-la, mas isso a torna mais limpa, e é por isso que estou fazendo isso. Então vamos colocar o primeiro derramado em palavras. Agora, se tomarmos este exemplo aqui, poderíamos ter isso separado por um caractere sem palavras, e podemos fazer um ou mais. E então nós podemos colocar a palavra juntos e nós temos uma combinação de ambos que agora funciona muito bem. Então isso é bem simples. Expressão regular. Se estamos apenas tentando encontrar uma palavra com outra palavra seguindo agora, se houver palavras no meio? Se houver a possibilidade de palavras adicionais aparecerem aqui, vamos colocar algumas palavras lá. Então temos duas palavras no meio. Vamos ver como modificaríamos essa expressão regular para garantir que ela possa corresponder a esses. Então eu vou fazer outro grupo aqui, e como eu não quero capturar, deixe-me apenas inserir isso. Agora vamos em frente e olhar para a parte de expressão regular, a parte correspondente. Então nós queremos um caractere de palavra e um ou mais daqueles seguidos por um
caractere não-palavra, e poderia ser um ou mais desses, e assim que irá designar uma palavra individual. Agora podemos especificar quantos desses permitiriam, então poderia ser zero 25 Talvez seja o que determinamos. E lá temos um fósforo. Temos duas palavras entre palavras e juntas, e conseguimos uma correspondência porque fomos capazes de designar que poderia haver outras palavras além disso. Agora vamos expandir isso ainda mais. E se a palavra de que queremos fazer parte do imposto para que haja uma correspondência pudesse vir antes ou depois? Vamos em frente e colocar juntos aqui, e vamos removê-lo daqui. Ali. Agora, não
temos mais correspondência, mas as duas palavras estão nos mesmos contatos pode não estar na mesma ordem. Então, como podemos modificar isso para ter certeza de que isso recebe uma correspondência também? A maneira de fazer isso seria usar. Ou então podemos encontrar esta ordem ou lá vamos nós. Ou podemos reverter a ordem. Deixe-me copiar isso aqui. Pay sentou-se e eu vou mudar a ordem destes dois juntos e palavras. E lá temos um fósforo. Então agora podemos conseguir uma correspondência se ela vier antes, como aquela ou depois, como esta, temos uma correspondência em ambas as situações. Então a maior parte disso são limites de palavras. Então temos o nosso jogo aqui, as duas palavras que estamos procurando e, em seguida, o que quer que possa vir entre e quantas vezes as palavras poderiam repeti-lo no meio. E então nós simplesmente repetimos isso do outro lado ou mas nós invertemos a ordem das palavras, e isso nos permite combinar algo quando outro algo está com ele. E essa é a melhor maneira de pensar sobre esse tipo de expressão regular, como você pode aplicá-la, combinar algo quando algo mais está com ela. É aí que você aplicaria esse tipo de expressão regular. Muito bem, vamos passar para o próximo
51. Como verificar datas: neste exercício de aplicação. Vamos dar uma olhada em validar datas. Sem datas. Ca NBI entrou em vários formatos diferentes. E então a primeira coisa que você precisa decidir é o que eu vou considerar válido? O que eu não vou considerar cédula? Então, para este exercício, vamos dar uma olhada no que queremos testar contra. E usaremos rejeitados, amigo, para isso. E então eu inseri uma data de amostra aqui. Todos trabalham com isso. Modifique isso para ver se a solução corresponderá a diferentes tipos de datas. Mas aqui está o que queremos fazer. Queremos fazê-lo no formato de data, dia, dia,
mês e ano. E nós queremos ser flexíveis o suficiente para que ele possa ser um único dígito de dia único mês, dois dígitos no ano e qualquer coisa entre eles. Então, qualquer combinação entre estes dois, este e este, queremos ter certeza de que isso é que aqueles foram considerados cédula. Então esta solução vai usar Amores. Então, se você quiser tentar isso por conta própria, abra os rejeitos, amigo. Vá em frente e experimente
e, em seguida, quando estiver pronto para continuar a reiniciar o filme. Tudo bem, vamos ver o que precisamos fazer para ter certeza de que podemos atender esses formatos de data em qualquer combinação entre eles, eu vou remover este texto aqui. Para começar, vamos apenas usar este exemplo de uma data para a nossa amostra. E uma coisa que eu quero fazer primeiro é colocar uma âncora inicial e final para a corda. Aí está minha âncora inicial, e então o cifrão seria a âncora final. E o que quer que o Texas tenha entrado, não
queremos nada além disso. Então queremos começar um ponto de ancoragem final para isso, e então teremos as duas barras. Tudo bem, então vamos primeiro trabalhar no dia agora, já que eu vou usar ou é parte disso porque podemos ter um dia aparecendo de três maneiras diferentes. Eu quero colocar isso dentro de príncipes para ajudar a organizá-lo, e então podemos ter um encontro que começa com um número três e, em seguida, um zero ou um um . Isso é possível. Então essa é a situação de um dia de encontro. Vou colocá-lo ali, e agora vamos ver o próximo. Pode ser um ou dois. Então eu estou fazendo um conjunto de caracteres de um ou dois, e então o segundo número pode ser de zero a nove. E assim como o conjunto de caracteres desses e, em seguida, mais um, ou então, esta terceira situação possível seria um único dígito. Agora lembre-se, o único dígito pode ter um zero na frente dele pode ser baseado em zero, ou eles podem optar por não colocar o zero na nossa frente. Como explicamos isso? Bem, vamos colocar o zero em primeiro lugar, e então vamos usar um modificador de repetição e basicamente estávamos indicando que zero pode ocorrer zero ou uma vez. Tudo bem, então isso explicaria se eles entraram ou não. E então, é
claro, o segundo ou o primeiro número
, qualquer que seja o caso, é de um a nove. Não temos um zero que desta vez, porque isso não é possível. Certo, então esse é o nosso dia. Agora vamos dar uma olhada no mês agora, com os meses ou iam começar com um e, em seguida, algum outro número ou
terá um único dígito e vamos fazer a mesma coisa com isso. Um dígito era como fizemos com o dia. Então vamos cuidar do tal. E então isso poderia ser seguido por um zero A um ou dois. Então vamos fazer, Ah, organizar dentro desse conjunto de caracteres e vamos fazer um ou agora, mais
uma vez, nós podemos ter o zero. Vamos modificar isso. Isso pode ser zero ou uma vez, e então teremos um a nove como o segundo ou possivelmente o primeiro número. Agora, outra
coisa que eu quero fazer aqui para agrupar melhor isso. Vou colocar isto na impressão. Vê também. Tudo bem. Agora, para a última parte, este será o ano agora. O ano indicado pode ter apenas dois dígitos ou quatro dígitos. Então vamos ver como podemos explicar isso. Então, vamos tomar cuidado. Ah, os dois dígitos no começo. Primeiro, eu vou colocar isso entre parênteses porque eu quero usar um personagem de repetição depois dele. E então eu queria me candidatar a tudo dentro desse grupo. E então vamos colocar um conjunto de caracteres de zero a nove. Deixe-me mostrar por que estou usando zero, e é por causa da repetição que cai. Nós indicamos que ele pode ter dois dígitos, e assim o zero pode ser o segundo dígito. Então, esses são os primeiros 2 dígitos dos anos o que é isso agora. Este grupo. Queremos que isto exista zero ou uma vez. Então, um grupo de dois dígitos. Isso é o que especificamos aqui sabe como fizemos isso. Este tipo de uma aplicação limpa de expressão regular. Indicamos os números que podem fazer parte desse número de dois dígitos com Vindicou que existem dois deles. E então colocamos esse modificador fora do grupo para indicar que esse grupo pode existir zero ou uma vez. Tudo bem agora, vamos fazer os dois últimos dígitos do ano e que podemos simplesmente fazer com outro
conjunto de caracteres de zero a nove e repetição de para gostar disso. Nana disse que imediatamente correspondeu uma vez que eu entrei que última parte em, Então essa é a nossa expressão regular que nos permitirá combinar uma data em diferentes formatos. Vamos ver, quando eu mudar isso para um quatro, ainda
é igual. E se eu fizer um 34? Bem, agora não combina com 14 fósforos aqui. Tenho um zero na frente do mês. Se eu remover isso, zero ainda corresponde. Se eu colocar um que não é mais um mês válido e por isso não corresponde, então no ano eu posso ter um dois dígitos aqui. Simplesmente assim. Devo ter pelo menos dois ou quatro. Como você pode ver quando eu coloco três, não combina, mas combina com os dois dígitos. Então essa é a nossa expressão regular para validar uma data que consiste em um formato de dia, mês ano com barras entre, e nós damos flexibilidade que a pessoa que insere a data pode ter dois dígitos para um dígito no mês e o dia e dois ou quatro dígitos no ano. Tudo bem, vamos passar para o próximo.
52. Como capturar texto combinado: nesta aplicação, vamos olhar para a captura de texto correspondente. Ao longo do curso, fizemos alguns grupos de captura, e essa é uma maneira de capturar texto de correspondência. Mas para este exercício, estou realmente interessado no método de correspondência de strings e como podemos usar isso para capturar texto de
correspondência que nos permite fazer algumas coisas interessantes. Então, vamos dar uma olhada no que é a atribuição para esta aplicação. Então o que queremos fazer é extrair todos os números desta frase aqui. Então nós temos uma string que queremos extrair todos os números desta captura esses números e alguns esses números, alguns em um único número. Então 32 mais 100 mais 15. Então é isso que gostaríamos de fazer, e queremos fazê-lo com o método purê de cordas. Então, tire alguns momentos se quiser e veja se consegue resolver isso,
então, quando estiver pronto para
continuar, reinicie este filme. Certo, vamos dar uma olhada em como eu conseguiria isso. Como eu disse no passado, provavelmente
há várias maneiras de conseguir isso, extrair os números e depois alguns deles juntos. Mas vamos dar uma olhada na minha solução. Então a primeira coisa que vou fazer é criar outra variável que estamos declarando aqui no topo, e este é o total. Este vai ser o alguns desses números, e eu vou defini-lo para zero inicialmente. Tudo bem agora, com isso feito, vamos em frente e configurar nossa expressão regular, e eu vou atribuir os resultados dessa expressão regular a uma variável de resultado. Então vamos usar o método de correspondência de strings. Então, há o método de correspondência, e com a metanfetamina, passamos em uma expressão regular e isso vai atuar nessa string. Então vamos em frente e configurar essa expressão regular. Não, já que quero extrair números, é
isso que quero. Isso é bem simples. É uma expressão regular bem simples. Eu vou fazer isso e, em seguida, eu vou colocar mais é bem porque eu quero um ou mais número quando eu capturar isso agora. Além disso, eu quero todas as ocorrências, então eu vou usar a bandeira global no final. Então essa é a expressão regular que vai nos ajudar a obter esses números agora, como você pode se lembrar, ou como você pode ter revisado com o método match, o que isso vai fazer é colocar os resultados em um array, então ele irá colocar as coisas nos resultados. Variável aqui como uma matriz. Então vamos ver como trabalharíamos com isso. Então eu vou fazer uma expressão F, e eu vou apenas verificar para ver se há algo nos resultados. Se houver, então faremos algo com isso agora. Esta próxima parte, não é necessária, realmente
não precisa ser feita a fim de atender aos requisitos. Sua aplicação. Mas digamos que eu queria extrair esses números da matriz e usá-los separadamente. Bem, eu poderia fazer isso simplesmente atribuindo duas novas variáveis algo assim. Então a posição zero seria o primeiro número que foi combinado, e nós simplesmente continuaríamos nesse mesmo tipo de padrão, extraindo esses números e colocando-os em uma variável. Agora observe que eu uso latte para definir essas variáveis. Então essas variáveis aqui estaria Onley disponível. Seu escopo é a chave, então isso está lá para encontrar escopo. Então, tecnicamente, o que eu estou dizendo é que eu vou usar esses números dentro desta declaração se tudo bem, deixe-me terminar isso fora. Então essa seria uma maneira de obter esses números e colocá-los em uma variável particular . Mas o que estamos tentando fazer é chegar a alguns desses números, e há muitas maneiras diferentes de fazer isso. Vou usar a função de redução de um aumento. É assim que vou conseguir os resultados. Então vamos ver como eu faço isso. Eu vou colocar os resultados finais no conjunto total que igual ao resultado ponto reduzir reduz um método no raise, e basicamente, o que ele permite que você faça é pegar todos os elementos em uma matriz e fazer algo com ele, combinando em um único valor. E é assim que fazemos isso. Primeiro temos que passar em uma função. Isto é, ah, funções de ordem
superior. Passamos em uma função que é então usado para agir em cada elemento na matriz, e eu vou usar uma função estreita. Eu costumo fazer isso quando estou trabalhando com redução de filtro de mapa, então vamos em frente e definir os parâmetros que funcionam. Alguns que variável vai conter o curso alguns como ele se move através de cada um dos itens na matriz. Ele vai adicionar aqueles para alguns, e que irá manter esse total como ele se move através de cada um daqueles e, em seguida, v a. L. Isso é as variáveis vai conter o valor da matriz que Ron assim é o iterado. Através dessa matriz, ele irá atribuir cada valor a este voto variável. Então, esses são parâmetros. Então temos a seta para indicar que é uma função estreita. E então isso é o que queremos devolver. Queremos retornar a soma mais cada valor. Não, já que estamos extraindo isso de uma string, nossos valores serão cadeias. Então eu quero convertê-los para um número. Vou fazer isso com a análise int. Por isso converti-me a base do Tim. Isso é basicamente o que eu estou fazendo lá. E, em seguida, a segunda coisa que precisamos passar para a redução é o valor inicial para a soma R. É claro que
queremos que isso comece em zero, então eu vou passar em um zero por isso. Tudo bem, então isso deve obter o nosso total. Então deixe-me ir em frente e salvar isso, que eu vou pegar o caminho do arquivo html para que possamos dar uma olhada nele. Puxe isso para cima e vamos ver o que temos aqui no Cônsul. Vou dar uma olhada no resultado Variável. Primeiro, vamos ver o que isso mostra. - Não. Como você pode ver, temos uma matriz de três valores 30 para 115 e notado que suas cordas k para que ele extrai ALS como cordas. E então vamos dar uma olhada na Total se isso obteve o que queríamos 100 47. Então, se
juntarmos esses juntos, obtemos 147. Então esse é o pedágio desses agora. Outra coisa que fizemos no código foi que atribuímos esses valores individuais. Duas variáveis agora do topo não foram capazes de acessar essas variáveis porque seu escopo está dentro disso. Se declaração assim não podemos realmente dar uma olhada para ver se isso funciona. Mas se viermos e mudarmos isso, deixe dois de nós então poderíamos fazer isso, porque então eu vou defini-los no topo do escopo alguns muito fresco, muito rápido, e então nós podemos apenas verificar e ter certeza que foi extraindo as coisas corretamente. E então temos um 32 e percebemos que é uma corda. Então ele fez para que pudéssemos convertê-los em um número, bem como ao assinar isso. Mas,
na verdade, a maior parte do que estamos tentando alcançar é para alguns desses números. Espero que tenha encontrado sucesso com isso. Tudo bem, vamos passar para o próximo tópico.
53. Descobrir informações sobre uma combinação: às vezes com expressão regular. Você quer descobrir algumas informações sobre o jogo, não apenas se ele gerencia, mas também informações sobre esse jogo. Então é isso que vamos fazer nesta aplicação. Agora vamos começar de onde paramos com a última aplicação. Então deixe-me pular para sublime, e vamos dar uma olhada nisso. Agora você pode ver que o código é o mesmo, mas a atribuição é diferente. Queremos recuperar o índice inicial para a correspondência, o comprimento da correspondência e a correspondência real. Então, só algumas dicas aqui. Você vai querer usar um método diferente do que nós usamos neste exemplo. Mas você ca NBA gin com isso, e com esse método diferente, você não estará usando a bandeira global. Basicamente, vamos procurar dígitos novamente, assim como fizemos aqui. Mas vamos achar o 32. Então procure o primeiro conjunto de dígitos, e é só com isso que vamos nos preocupar. Mas você quer encontrar o índice inicial disso, o comprimento disso e a correspondência real em si. Então, qual método você usará? Vá em frente e pausar isso Tome um momento para eu descobrir a melhor maneira de fazer isso e, em seguida, reiniciar quando você estiver pronto para continuar. Certo, então o truque para resolver esse problema em particular é usar o método exato de
expressões regulares . Então não vamos usar um método de uma string, mas da própria expressão regular. Então a primeira coisa que vou fazer é configurar as variáveis para o índice inicial, o comprimento e a bagunça real. Eu só vou chamar estes partida partida partida partida partida, colocar comprimento smash e por último, nós vamos apenas chamar jogo. E essa é a informação que vamos recuperar. E isso é tudo. Agora eu quero colocar os resultados na variável de resultado novamente. Mas como este é um método de expressões regulares, precisamos fazer isso de uma maneira muito diferente. Então eu vou remover tudo aqui, e nós vamos apenas fazer um método desta expressão regular. O método que queremos usar é exato. Exatamente é o método que fornece mais informações sobre a correspondência, e então passamos a string para isso. Agora, uma vez que tenhamos uma correspondência, remova isso aqui, então podemos ir em frente e atribuir a informação às variáveis. Então partida partida, vamos realmente ser resultado índice ponto. Então lembre-se, com exato temos uma propriedade de índice que nos dá a posição de índice da correspondência, a posição inicial dessa correspondência. E isso é o que vamos atribuir para combinar ponto ou para combinar início, em seguida, para comprimento do jogo, este um pequeno truque aqui. A primeira posição neste array armazena a correspondência real. Então, se conseguirmos o comprimento disso, então podemos obter o quanto tempo os fósforos. E então, finalmente, desde a primeira posição do jogo de histórias de corrida real, nós poderíamos apenas atribuir isso para combinar. É assim, então não é muito difícil uma vez que você tem o método correto e lembrando que é um método
da expressão regular, não um método de strings. Então vamos dizer que isso vai apenas dar uma olhada nessas três variáveis indo para pegar o
caminho do arquivo , saltar para fora e vamos olhar console e deixe-me apenas dar uma olhada no início do jogo. Isso é 14 então 14 caracteres nessa cadeia é onde ele começa 0123456789 10 11 12 13. 14 é onde 32 começa. Ok. E então, claro, é
claro,o comprimento da
correspondência é 32 é dois dígitos, e então a correspondência real em si. E lá recuperamos o número 32. Então, às vezes, você pode precisar coletar informações sobre o jogo para outros fins para fazer algo com ele. Poderíamos usar essa informação para fazer uma alteração nessa string. E isso talvez seja o que é necessário. Mas quando você está olhando para coletar informações sobre uma correspondência você usaria exatamente. Tudo bem, vamos seguir em frente.
54. Iteração sobre amostras: neste aplicativo, vamos dar uma olhada em como podemos classificar sobre partidas que vão usar o mesmo problema que usamos no último par de aplicativos. Então deixe-me dar uma olhada nisso. Temos esta frase com três números. Você vai criar uma expressão regular que corresponde aos números. Então, essa parte que já fizemos estamos olhando para como aplicar isso no script Java. Agora, o truque aqui é descobrir como você vai iterar sobre todos esses jogos. Agora, há uma maneira óbvia que falamos antes de usar o método match porque ele cria uma matriz de correspondências. E então podemos iterar sobre esse array usando um número de técnicas diferentes. Então essa é a maneira óbvia. Eu vou introduzir na solução em maneira adicional para iterar sobre aqueles que usam a última propriedade index de uma expressão regular. Se quiser tentar descobrir isso antes de eu apresentar a solução, vá em frente. De qualquer forma, pause o vídeo e reinicie-o quando estiver pronto para assistir à solução. Tudo bem. Agora, como eu mencionei na maneira óbvia de reiterar sobre correspondências é usar o método match de uma string que cria uma matriz de correspondências. E então você pode iterar sobre esse raio usando um loop de quatro em Ah, quatro loop que você poderia usar para cada um é o método. Isso faz parte de uma corrida. Então há várias maneiras diferentes de fazer isso. Vou mostrar uma solução com o último índice. Agora, Last index é uma propriedade de uma expressão regular que está disponível com exato ou teste. Então esses dois métodos que você pode usar em uma expressão regular, ele cria uma propriedade. Último índice e último índice representa a posição após a última correspondência. Então, a posição do índice após a última correspondência, é o que representa. Vou usar essa propriedade como parte do loop que estou criando para que não fiquemos
presos em um loop infinito se nossa expressão regular produzir uma correspondência de comprimento zero. Então deixe-me primeiro definir a expressão regular. Nós já fizemos isso antes, então nada de novo lá procurando os números nesta string, e eu estou usando a bandeira global. Eu também vou marcar um jogo. Vou assinar que um valor não indicado está vazio. Agora vamos montar o nosso ciclo. Então, enquanto match e vamos definir que igual à expressão regular usando o
método exato na frase como essa. Então, enquanto temos algo, chame de resultados em algo que corresponda. Então vamos em frente e fazer algo com isso. E então o que eu vou fazer é apenas registrar para o cônsul. O número de correspondência simples. É assim? Um loop muito simples. Então deixe-me dizer que vamos apenas dar uma olhada no que isso produz, mas aquele arquivo no navegador e vamos abrir o cônsul. Então aqui estão as três declarações de registros. Há um 32, um 100 e há um 15. Então, já que estamos usando o método exato, temos muitas informações sobre isso coincidem. Mas em todos os casos, obtemos o valor para que pudéssemos usar esse loop while para agir em cada uma dessas partidas, dependendo do que queríamos fazer dio. Então funciona muito slick para iterar sobre esses valores e fazer algo com que esses valores. Agora, na introdução deste eu mencionei o último índice. Não, ainda não usei. Por que eu mencionaria o último índice e eu sou usado. Bem, deixa-me mostrar-te uma coisa. Se fôssemos mudar isso para um asterisco que indica enquanto confinamos zero ou muitos dígitos, bem, zero nos daria uma correspondência que é comprimento zero. Ele pode encontrar uma correspondência que é de comprimento zero, e como tal, nós ficaríamos presos em um loop infinito aqui. Não seria capaz de saltar para fora disso. E assim, se você não tem certeza se sua expressão regular poderia obter uma correspondência de comprimento zero, então eu também adicionaria uma declaração if adicional aqui no loop wild. Seria algo parecido com isso. Verificamos o índice da partida e vemos se é igual a eu vou usar o operador de igualdade não rigoroso. A expressão regular. É a última propriedade de índice parece capital, I. Então, se essas coisas são iguais, é aí
que estaríamos presos em um loop infinito. E então eu quero apenas incrementar a última propriedade de índice. Dessa forma, ele continuará a se mover através do loop porque basicamente o que está acontecendo com último índice o loop while funciona é porque o método exato cria o último índice. É aí que começa a próxima partida é onde está o último índice. E é assim que conseguimos todos os jogos diferentes porque começa na próxima vez logo após este primeiro jogo do que na próxima vez após o segundo jogo e assim por diante. Então, se esses são iguais, então estamos em um loop infinito e, em seguida, queremos incrementar a última propriedade index. Sabes, só para te mostrar o que se passa. Deixe-me. Também os chicotes também exibem a última propriedade de índice. Tudo bem, então vamos salvar isso e veremos que isso não tem um loop infinito, mas observe como ele passa por toda a cadeia uma posição de cada vez. Considerando que se usarmos o mais, então justiça três posições, aqui está o último índice, então a partida começa. 14. Os números 32 então 14 15 o último índice é 16. É aí que ele começa a próxima partida, e então ele encontra o próximo número 100 que começa em 41 lamentam. Isso começa em 38, em seguida, os últimos índices 41 assim por diante. Então é assim que funciona. Não há nenhum. Zero comprimento corresponde nesse caso, e assim não temos que nos preocupar em ficar preso em loop infinito. Mas esta é uma boa afirmação para incluir apenas para evitar que isso aconteça. Então, uma boa maneira de iterar sobre fósforos. Tudo bem, vamos seguir em frente.
55. Conclusão: Parabéns. Você chegou ao fim deste curso. Felizmente, você é capaz de aprender muito sobre expressões regulares e como usá-las com JavaScript antes de terminar a sessão. Eu só quero deixar algumas coisas com você primeiro. A sintaxe para expressões regulares é bastante difícil. Não é a coisa mais fácil de lembrar, por isso é importante que você tenha um lugar onde você possa se referir para lembrar de alguns desses elementos
de sintaxe. Gosto de usar rejeitados, amigo. Eu gosto de usar a folha de truques que está disponível com Reg Expel. É muito simplificado, e eu posso facilmente olhar para as coisas e me lembrar, Oh, sim, isso é o que isso é. Ah, uma das coisas que eu costumo misturar ou quantificar o IRS, então eu tenho que olhar para eles muito rápido e, oh sim, esse é o zero ou mais, e esse é o único. Ou mais. Às vezes eu misturo essas coisas, então provavelmente há coisas que você vai misturar uma onda ou que você vai esquecer. Vamos ser realistas. Expressões regulares não são o tipo de coisa que você usa em cada pedaço de seu código, e assim quando você não está usando muito. É fácil esquecer essas coisas, então você precisa deste tipo de referência agora. O outro comentário que quero fazer sobre expressões regulares é, como você viu com algumas dessas aplicações que temos lidado na última seção. Às vezes, a solução de um problema que usa expressões regulares tem a ver com o método que você usa em JavaScript. E assim obter tau conhecer e entender bem esses métodos. Revise alguns desses aplicativos se você precisar revisar a primeira parte em que falamos sobre os métodos para que você entenda isso também. Então não é tanto assim. Embora qual é a expressão regular que eu preciso usar para resolver isso? É mais. Eu sei que esta expressão regular pode corresponder ao datum depois que eu estou ciente disso. Mas como resolvo o problema associado à correspondência desses dados? Às vezes isso pode ser mais complicado agora. É certo existem expressões regulares que podem ser bastante complexas, e uma das melhores coisas sobre passar por este curso é que você verá algumas dessas expressões
regulares. Quando você faz algumas pesquisas no Google para um problema específico, você pode encontrar algo Bem, agora você pode ler através dele e entender o que ele está fazendo, e isso pode ajudá-lo a aprender mais sobre expressões regulares também. Portanto, essas são as duas sugestões que eu faria no final deste curso. Agora que você entende como as expressões regulares funcionam, você entende a sintaxe envolvida com elas, e você entende os métodos disponíveis no JavaScript. Para usar essas expressões regulares, você pode começar a aplicá-las e encontrar mais sucesso em seu revestimento de script de trabalho. Então boa sorte para você e obrigado por passar este curso comigo.