Como usar expressões regulares em chatbots

Expressões regulares são padrões que você pode usar quando os métodos de validação predefinidos são insuficientes para comparar um valor recebido de um assinante com um valor de modelo.

Por exemplo, você pode usar expressões regulares para verificar uma frase quanto a palavras-chave e contagem de palavras, a presença de espaços e outros caracteres, bem como inserir números dentro de um determinado intervalo de valores ou verificar se há um link para uma conta de mídia social.

Sintaxe de Expressão Regular

Você pode compor uma expressão regular a partir de caracteres regulares, como /abc/, ou combinar caracteres regulares e especiais, como /ab*c/.

Nas tabelas abaixo, você pode ver os símbolos básicos que são usados ao compor uma expressão regular.

Símbolos Especiais

\ Personagem de blindagem. Indica que o caractere a seguir é um caractere literal e não um metacaractere. Por exemplo, \* corresponde a um asterisco como um caractere literal, não um quantificador de repetição
\n Nova linha. Usado para pesquisar feeds de linha. Por exemplo, /\n/ corresponde a uma quebra de linha na string

"Trabalhe duro.

Sonhe grande."

\t Aba. Usado para procurar o caractere de tabulação horizontal em strings (caractere ASCII 9).
\v Guia vertical. Corresponde a qualquer caractere de espaço vertical.
\f Nova página. Corresponde ao caractere ASCII 12.

Âncoras

^ O início da cadeia. Por exemplo, /^B/ não corresponde a "B" em "a B", mas sim em "B a.”
$ Fim da linha. Por exemplo, /k$/ não corresponde ao "k" em "walker", mas corresponde à string "walk".
\b Limite da palavra. Por exemplo, /\bpump/ corresponde a "bomba" em "abóbora".

Classes de símbolos

\s Espaço. Por exemplo, /\s/ corresponde ao primeiro caractere de espaço na string "que soa incrível". Se o sinalizador de pesquisa global g for usado, /\s/g corresponderá a dois caracteres de espaço na string "isso parece incrível".
\d Dígito. Igual ao primeiro dígito da linha. Equivalente a /[0-9]/. Por exemplo, /\d/ corresponde a "2", mas não corresponde a "B" na string "B2 é o número do conjunto".
\D Não um número. Igual à primeira letra da string. Equivalente a /[^0-9]/. Por exemplo, /\D/ corresponde a "B", mas não corresponde a "2" na string "B2 é o número da suíte."
\w Word. Corresponde a qualquer primeiro caractere alfanumérico, incluindo o sublinhado. Equivalente a /[A-Za-z0-9_]/. Por exemplo, /\w/ corresponde a "b" em "banco" e "3" em "$3,52".
\W Nenhuma palavra. Corresponde a qualquer primeiro caractere de letra que não seja um dígito. Equivalente à expressão /[^A-Za-z0-9_]/.

Por exemplo, /\W/ corresponde a "%" na linha "50%".

Quantificadores

* 0 ou maior. Corresponde ao caractere anterior repetido 0 ou mais vezes. Equivalente à expressão /{0,}/. Por exemplo, /les*/ corresponde a "menos" em "amor sem fim" e "le" em "que seja."
+ 1 ou maior. Corresponde ao caractere anterior repetido 1 ou mais vezes. Equivalente à expressão /{1,}/.

Por exemplo, /a+/ corresponde a "a" na string "sugar" e todos os caracteres "a" na string "sugaaaaar".

? 0 or 1. Corresponds to the previous character repeated 0 or 1 times. Equivalent to the expression /{0,1}/. For example, /colou?r/ corresponds to both "color" and "colour," or /mo?ustache/ corresponds to both "moustache" and "mustache."
{n} Exatamente N vezes. Por exemplo, /a{2}/ não corresponde a "a" na string "sugar", mas corresponde a ambas as instâncias de "a" na string "sugaar" e a primeira dois "a" na string "sugaaar".
{n,m} Mínimo N e máximo M vezes. Por exemplo, /a{1,3}/ não corresponde a nada na string "sugr", mas corresponde ao caractere "a" na string "sugar", duas instâncias de "a" em a string "sugaar" e as três primeiras instâncias de "a" na string "sugaaaaaaar".

Intervalos

. Qualquer caractere que não seja uma quebra de linha (/\n/). Por exemplo, /.e/ corresponde a "ke" na string "Tome cuidado! Se o sinalizador de pesquisa global g é usado, a expressão /.e/g corresponde a "ke" e "re" na string "Take care !
(a|b) a ou B. Por exemplo, /(green|red)/ corresponde a "verde" em "verde ou maçã vermelha?" e /(red|green)/ corresponde a "red" em "green ou red apple?".
(...) Grupo de personagens. Por exemplo, /(...e)/ corresponde a "Have" na string "Tenha um bom dia! Se o sinalizador de pesquisa global g é usado, a expressão /(...e)/g corresponde a "Have" e "nice" na string "Tenha um bom dia!
[abc] a, ou b, ou c. Por exemplo, /[abcd]/ corresponde ao caractere "b" na string "basket". Se o sinalizador de pesquisa global g for usado, a expressão /[abcd]/g corresponde aos caracteres "b" e "a" na string "basket".< /td>
[a-q] A letra entre a e q em minúscula. Por exemplo, /[e-m]/ corresponde ao caractere "k" na string "basket". Se o sinalizador de pesquisa global g for usado, a expressão /[e-m]/g corresponde aos caracteres "k" e "e" na string "basket".
[A-Q] Uma letra entre A e Q em maiúscula. Por exemplo, /[E-M]/ corresponde ao caractere "K" na string "BASKET". Se o sinalizador de pesquisa global g for usado, a expressão /[E-M]/g corresponde aos caracteres "K" e "E" na string "BASKET".
[^abc] Não a, b ou c. Por exemplo, /[^abcd]/ corresponde ao caractere "s" na string "basket". Se você usar o sinalizador de pesquisa global g, a expressão /[^abcd]/g corresponde aos caracteres "s", "k", "e" e "t " na string "cesta."
[^a-q] Qualquer letra minúscula que não esteja no intervalo de a a q. Por exemplo, /^[e-m]/ corresponde ao caractere "b" na string "basket". Se você usar o sinalizador de pesquisa global g, /^[em]/g corresponde aos caracteres "b", "a", "s" e "t" em a string "cesta."
[0-9] Um dígito entre 0 e 9. Por exemplo, /[1-5]/ corresponde ao número "2" na string "B255 é o número do conjunto." Se o sinalizador de pesquisa global g for usado, a expressão /[1-5]/g corresponderá aos dígitos "2", "5" e "5" em a string "B255 é o número do conjunto."

Bandeiras

Observe que os sinalizadores são especificados após a expressão regular. A ordem das bandeiras não importa.

g Pesquisa global. Por exemplo, /m/g corresponde a ambas as instâncias de "m" na string "moments". Sem o sinalizador g, o padrão /m/ corresponde ao primeiro "m" na string "moments".
i Uma pesquisa independente de região. Por exemplo, /m/i corresponde ao caractere "M" na string "Moments". Sem o sinalizador i, o padrão /m/i não corresponde ao caractere "M" na string "Moments".
m Texto de várias linhas. Por exemplo, /^\D/gm corresponde aos caracteres "W" e "D" nas linhas a seguir.

"Trabalhe duro.

Sonhe grande."

Explicação: ^ - procura por caracteres no início da string, \D - procura por caracteres de texto, g - procura globalmente por todas as strings (ou seja, há pode ter mais de um caractere), m - especifica que haverá várias strings.

s Leia o texto como uma única linha. O texto é tratado como uma única linha, nesse caso o metacaractere "." corresponde a qualquer caractere único, incluindo o caractere de nova linha.

Explicação: se uma expressão regular tiver um ponto (.) com o sinalizador s, ela pesquisará qualquer caractere, incluindo quebra de linha \n.

Metacaracteres

Metacaracteres são caracteres que não são letras ou números, mas têm um papel específico na sintaxe de uma expressão regular. Por exemplo, * é um quantificador de repetição.

Para usar um meta-personagem para um propósito diferente, ele precisa ser blindado. Por exemplo, para fazer com que o símbolo * não seja mais um quantificador de repetição, mas um símbolo de asterisco, você precisa usar blindagem.

A blindagem é feita com o caractere de barra invertida \. Por exemplo, \. , \/, \* e assim por diante.

Veja a tabela abaixo para os caracteres que precisam ser blindados.

^ [ . $ { * (
\ + ) | ? < >

Para saber mais sobre a sintaxe de expressão regular, consulte a tabela em exlab.net.

Como usar expressões regulares no SendPulse Chatbot Builder

Arraste e solte o item do elemento Message do painel esquerdo do construtor de chatbot. Ative a opção "Aguardar resposta do assinante". Selecione a "Expressão regular" como validação.

Insira sua expressão no campo Expressão Regular. Veremos um exemplo de expressão para verificar se você digitou "Sim" e "Não" com casos diferentes.

Você pode verificar a validade da expressão regular no site regex101 . Lá, na seção "Biblioteca Regex", você encontra modelos de expressões comumente usadas com explicações.

Digite a mensagem que aparecerá quando alguém inserir dados incorretamente. Você pode usar variáveis e emojis.

Recomendamos que você altere a mensagem de erro padrão e especifique o que deseja obter em resposta com um valor de exemplo para facilitar a navegação do usuário no bot e fornecer os dados corretos.

Selecione a variável na qual deseja salvar a resposta ou crie uma nova clicando em "Criar variável".

Não se esqueça de definir um período de espera para a resposta para evitar que o usuário insira valores diferentes daqueles que você solicitou por um período de tempo.

Observação: quando o elemento "Entrada do usuário" está aguardando uma resposta, o acionamento de outros fluxos por acionadores e cliques de menu não funciona.

Você também pode usar respostas rápidas para o tipo de validação "Expressão regular" para ajudar os usuários com respostas predefinidas.

Clique em "Aplicar."

Como os usuários interagem com o bot usando uma expressão regular

Um exemplo de uso de expressões regulares para verificar quantitativamente a introdução de uma frase a partir de duas palavras /^[^\s]*\s[^\s]*$/

Se um assinante digitar o número errado de palavras, ele receberá uma mensagem de entrada incorreta. Se o número de palavras estiver correto, o assinante receberá uma mensagem de sucesso.

Um exemplo de uso de expressões regulares para perguntas dicotômicas com declarações "Sim" e "Não".

No elemento "Mensagem", adicionamos uma pergunta, dois botões e inserimos os dados do usuário com uma expressão regular ^(?:Yes|No|)$, onde depois de ? : inserimos os valores que queremos obter e escrevemos em uma variável, | - operador "ou," ^ e $ denotam o início e o fim da string. Se o usuário não clicar em um dos botões, mas inserir seu próprio texto, que não é relevante para a resposta esperada, a mensagem o lembrará de inserir ou clicar em uma das instruções se os dados está inserido incorretamente.

Um exemplo de uso de expressões regulares para consultar um endereço de e-mail em gmail.com.

No bloco "Mensagem", adicione uma pergunta e uma entrada do usuário com a expressão regular (\w|^)[\w.\-]{0.25}@(gmail)\.com(\w| $) e corrija a mensagem de erro. Veja esta mensagem decodificada abaixo.

Se um usuário inserir um e-mail em um domínio diferente de "gmail.com", a mensagem o lembrará de inserir um e-mail no domínio gmail.com para acessar o Google Docs, caso os dados não tenham sido inseridos corretamente.

Observe que os dados gravados usando expressões regulares são gravados em variáveis do tipo "String". Você não poderá enviar campanhas para eles no serviço. Para coletar dados de contato para envio de mensagens, use o tipo de entrada de dados "E-mail" e "Telefone".

As respostas com dados dos usuários são salvas nas variáveis de público do chatbot. Você pode ver as respostas salvas na guia Público, use as variáveis em todas as mensagens de texto subsequentes, e criar listas de endereçamento com segmentação.

Exemplos de Expressões Regulares

Para verificar uma data no formato DD/MM/AAAA:

/\d{1,2}\/\d{1,2}\/\d{4}/
  • Explicação:
  • \d - aguardando a digitação de qualquer dígito;
  • {1,2} - pode haver um ou dois dígitos no total ({1,2};
  • \. - proteção do "." para que apareça como um período normal.

Para verificar a data no formato DD.MM.AAAA:

/\d{1,2}\.\d{1,2}\.\d{4}/
  • Explicação:
  • \d - aguardando a inserção de qualquer dígito;
  • {1,2} - deve haver um ou dois dígitos no total ({1,2};
  • \. - blindagem do "." para que apareça como um período normal;
  • {4}. - deve haver quatro dígitos no total ({4})

Para verificar uma palavra por linha:

/^[^\s]*$/
  • Explicação:
  • ^ - início de linha;
  • [^\s] - qualquer caractere, sem espaço após cada caractere;
  • * - 0 ou mais vezes;
  • $ - fim da linha.

Para verificar duas palavras em uma linha:

/^[^\s]*\s[^\s]*$/
  • Explicação:
  • ^ - início de linha;
  • [^\s] - qualquer caractere a ser inserido, sem espaço após cada caractere;
  • * - 0 ou mais vezes;
  • \s - espaço;
  • [^\s] - qualquer caractere, sem espaço após cada caractere;
  • * - 0 ou mais vezes;
  • $ - fim da linha.

Para verificar três palavras em uma linha:

/^([^\s]*\s){2}[^\s]*$/
  • Explicação:
  • ^ - início de linha;
  • ([^\s]*\s){2}) são duas palavras ({2}), cada uma consistindo de qualquer caractere, sem espaço; após cada caractere ([^\s]), que pode ser 0 ou mais vezes (*); cada palavra termina com um espaço (\s);
  • [^\s] - qualquer caractere, sem espaço após cada caractere;
  • * - 0 ou mais vezes;
  • $ - fim da linha.

Para verificar uma correspondência de palavra específica: (por exemplo, sim, sim, sim ou não, não, NÃO):

/^(?:Sim|Sim|SIM|Não|não|NÃO)$/
  • Explicação:
  • ^ - início da linha;
  • ?:- aguardando entrada de palavras que correspondam às digitadas;
  • Sim|Sim|Sim|Não|Não são as palavras sim, Sim, SIM, não, Não, NÃO para verificar se há correspondência;
  • $ - fim da linha.

Expressão regular para verificar a série e o número do passaporte (como duas letras e seis dígitos sem espaço para o modelo antigo ou xxxxxxxx-xxxxxxx para o novo modelo):

/^([AZ]{2}[0-9]{6})?$|[0-9]{8}[\s\-]?[0- 9]{5}?$/
  • Explicação:
  • ^ -início de linha;
  • ([AZ]{2}[0-9]{6})? - uma string que pode ser repetida 0 ou 1 vezes (?), que consiste em dois caracteres ({2}) entre A e Z ([AZ]) seguidos por seis ({6}) dígitos de qualquer valor ([0-9]);
  • $ - fim da linha;
  • | - operador "ou";
  • [0-9]{8} - oito ({8}) dígitos de qualquer valor ([0-9]) ;
  • [\s\-]? - espaço e traço ([\s\-]), que pode ser repetido 0 ou 1 vez;
  • [0-9]{5} - cinco ({5}) quaisquer dígitos ([0-9]).< /li>

Para verificar um TIN (de 10 ou 12 dígitos):

/^(([0-9]{12})|([0-9]{10}))?$/
  • Explicação:
  • ^ - início de linha;
  • [0-9]{12} - doze ({12}) dígitos entre 1 e 9 ([0-9] );
  • | - operador “ou”;
  • [0-9]{10} - dez ({10}) dígitos ([0-9]);
  • ? - que pode ser repetido 0 ou 1 vez;
  • $ - fim de linha.

Para verificar um número de cartão bancário no formato xxxx-xxxxxx-xxxx-xxxx:

/\d{4}[\s\-]?\d{4}[\s\-]?\d{4}[\s\-]?\d {4}{/
  • Explicação:
  • \d - aguardando a inserção de qualquer dígito;
  • {4} - dos quais só pode haver quatro;
  • [\s\-]? - espaço e traço, que podem ser repetidos 0 ou 1 vez.

Para verificar endereços de e-mail em domínios (por exemplo, para compartilhar documentos em uma Conta do Google com um endereço gmail.com):

/(\w|^)[\w.\-]{0,25}@(gmail)\.com(\w|$)/
  • Explicação:
  • (\w|^) - primeira parte da captura, onde \w - corresponde a qualquer caractere de texto, ^ indica o posição no início da string;
  • [\w.\-] - corresponde a um caractere da lista, onde \w - corresponde a qualquer caractere de texto, . corresponde ao caractere "." e . corresponde a "-";
  • {0,25} - dos quais pode haver de 0 a 25;
  • (gmail) - corresponde à palavra "gmail";
  • \. - corresponde ao símbolo ".";
  • com - corresponde à palavra "com";
  • (\w|$) é o terceiro grupo de captura, onde \w corresponde a qualquer caractere de texto, | é o "ou " operador, $ indica a posição no final da string.
    Rate this article about "Como usar expressões regulares em chatbots"

    User Rating: 5 / 5

    Anterior

    Como usar modificadores para variáveis

    Próximo

    Como adicionar um link para um evento de calendário em um chatbot

    Teste o SendPulse hoje gratuitamente