Mudanças entre as edições de "Voipr/Manual/Regex"

De BrByte Wiki
< Voipr‎ | Manual
 
(16 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
Uma expressão regular especifica um conjunto de sequências de caracteres. Um membro deste conjunto de seqüências de caracteres é dito ser correspondido pela expressão regular. Alguns caracteres (ex: ^,.,{},[],\) têm um significado especial quando usado em uma expressão regular; outros caráteres significam eles mesmos.
+
== Uso ==
 +
 
 +
O uso de regex, serve para identificar uma  [[#Expressão Regular]], ou seja padrões de entrada de valores.
 +
 
 +
Sendo utilizado no aplicativos de [[Voipr/Aplicativos/Redirecionamento|Redirecionamento]] (para detecção do número discado), [[Voipr/Aplicativos/Tarifa|Tarifa]] (para detecção do número discado) e [[Voipr/Aplicativos/Rota|Rota]] (para detecção do número discado e do [[Voipr/Aplicativos/Route Number|Route Number]] da operadora).
 +
 
 +
<pre>
 +
^06732011173$  - identifica o número 06732011173
 +
^067........$  - identifica o número 067XXXXXXXX
 +
</pre>
 +
 
 +
Veja mais em [[#Exemplos]], neste tópico
 +
 
 +
== Expressão Regular ==
 +
 
 +
Uma expressão regular especifica um conjunto de sequências de caracteres. Um membro deste conjunto de sequências de caracteres é dito ser correspondido pela expressão regular. Alguns caracteres (ex: ^,.,{},[],\) têm um significado especial quando usado em uma expressão regular; outros caráteres significam eles mesmos.
 +
 
  
 
* '''^ Circunflexo '''
 
* '''^ Circunflexo '''
Linha 5: Linha 21:
 
Corresponde ao começo do regex, exceto quando informado dentro de [], que passa a ser uma negação dos valores  
 
Corresponde ao começo do regex, exceto quando informado dentro de [], que passa a ser uma negação dos valores  
  
* '''$ Cifra ou simbolo de dolar '''
 
  
Corresponde ao final do regex  
+
* '''$ Cifra ou simbolo de dólar '''
 +
 
 +
Corresponde ao final do regex
 +
 
  
 
* '''. Ponto '''
 
* '''. Ponto '''
Linha 14: Linha 32:
 
Por exemplo (....), qualquer entrada que tenha 4 caracteres  
 
Por exemplo (....), qualquer entrada que tenha 4 caracteres  
  
* '''() Parentesis '''
+
 
 +
* '''() Parêntesis '''
  
 
Corresponde a um agrupamento de entrada  
 
Corresponde a um agrupamento de entrada  
 
Por exemplo (40041001), significa que a entrada deve ser 40041001  
 
Por exemplo (40041001), significa que a entrada deve ser 40041001  
 
Por exemplo (067), significa que a entrada deve ser 067  
 
Por exemplo (067), significa que a entrada deve ser 067  
 +
  
 
* '''[] Colchetes '''
 
* '''[] Colchetes '''
  
 
Corresponde a um agrupamento de entrada  
 
Corresponde a um agrupamento de entrada  
Por exemplo [1234], significa que a entrada deve ter um dos numeros informados (1,2,3 ou 4)  
+
Por exemplo [1234], significa que a entrada deve ter um dos números informados (1,2,3 ou 4)  
  
 
* '''- Traço ou sinal de menos '''
 
* '''- Traço ou sinal de menos '''
 +
  
 
Usado para informar um range de caracteres  
 
Usado para informar um range de caracteres  
Linha 34: Linha 55:
 
Uma expressão seguida de *, significa, nenhuma ou varias vezes  
 
Uma expressão seguida de *, significa, nenhuma ou varias vezes  
 
Por exemplo [0-9]*, equivalente a entrada vazia ou a repetição infinita de valores, Essa entrada equivale a [0,9]{0,}  
 
Por exemplo [0-9]*, equivalente a entrada vazia ou a repetição infinita de valores, Essa entrada equivale a [0,9]{0,}  
 +
  
 
* '''+ Sinal de mais '''
 
* '''+ Sinal de mais '''
Linha 39: Linha 61:
 
Uma expressão seguida de +, significa, uma ou mais vezes  
 
Uma expressão seguida de +, significa, uma ou mais vezes  
 
Por exemplo [0-9]+, equivalente a [0-9][0-9]*. Essa entrada equivale a [0,9]{1,}  
 
Por exemplo [0-9]+, equivalente a [0-9][0-9]*. Essa entrada equivale a [0,9]{1,}  
 +
  
 
* '''{m} Chaves com um numero '''
 
* '''{m} Chaves com um numero '''
  
 
A entrada deve corresponder m vezes  
 
A entrada deve corresponder m vezes  
Por exemplo [0-9]{8}, qualquer número que tenha 8 digitos de 0 a 9  
+
Por exemplo [0-9]{8}, qualquer número que tenha 8 dígitos de 0 a 9  
 +
 
  
 
* '''{m,} Chave com um numero e virgula '''
 
* '''{m,} Chave com um numero e virgula '''
  
 
A entrada deve corresponder m vezes até o infinito.  
 
A entrada deve corresponder m vezes até o infinito.  
Por exemplo [0-9]{4,}, qualquer número que tenha no minimo 4 digitos de 0 a 9, sem limite máximo  
+
Por exemplo [0-9]{4,}, qualquer número que tenha no minimo 4 dígitos de 0 a 9, sem limite máximo  
 +
 
  
 
* '''{m,n} Chaves com um numero, virgula e outro numero '''
 
* '''{m,n} Chaves com um numero, virgula e outro numero '''
  
 
A entrada deve corresponder m vezes até n  
 
A entrada deve corresponder m vezes até n  
Por exemplo [0-9]{1,4}, qualquer número que tenha entre 1 a 4 digitos, de 0 a 9  
+
Por exemplo [0-9]{1,4}, qualquer número que tenha entre 1 a 4 dígitos, de 0 a 9  
 +
 
  
 
* '''? Sinal de interrogação '''
 
* '''? Sinal de interrogação '''
  
 
Uma expressão seguida de ?, significa que ela pode ou não tem essa entrada.  
 
Uma expressão seguida de ?, significa que ela pode ou não tem essa entrada.  
Por exemplo (067)?[0-9]{8}, qualquer número que começe ou não com 067 seguido de 8 digitos de 0 a 9  
+
Por exemplo (067)?[0-9]{8}, qualquer número que comece ou não com 067 seguido de 8 dígitos de 0 a 9  
 +
 
  
 
* '''| Pipe ou barra reta '''
 
* '''| Pipe ou barra reta '''
  
Uma explessão separada com |, serve para informar que o valor deve ser uma ou outra entrada.  
+
Uma expressão separada com |, serve para informar que o valor deve ser uma ou outra entrada.  
 
Por exemplo (067|066)40041001, o número 40041001, precedido por 067 ou 066 Por exemplo (067|066)?40041001, o número 40041001, precedido ou não por 067 ou 066
 
Por exemplo (067|066)40041001, o número 40041001, precedido por 067 ou 066 Por exemplo (067|066)?40041001, o número 40041001, precedido ou não por 067 ou 066
 +
 +
 +
 +
== Exemplos ==
 +
 +
 +
* Qualquer número que tenha exatamente 8 (oito) dígitos
 +
 +
<pre>
 +
^([0-9]{8})$ - qualquer dígito que se repita 8 vezes - agrupando os dígitos - recomendado pois agrupa os valores
 +
^[0-9]{8}$ - qualquer dígito que se repita 8 vezes - sem agrupar os dígitos, similar a opção acima
 +
[0-9]{8} - qualquer dígito que se repita 8 vezes - sem agrupar os dígitos, similar a opção acima
 +
^.{8}$ - qualquer carácter que se repita 8 vezes
 +
^(........)$ - qualquer entrada que tenha 8 caracteres, do começo ao fim - recomendado pois agrupa os valores
 +
^........$ - qualquer entrada que tenha 8 caracteres, do começo ao fim, similar a opção acima
 +
........ - qualquer entrada que tenha 8 caracteres, no minimo - não recomendado
 +
</pre>
 +
 +
 +
* Qualquer número que tenha no minimo 1 (um) e no máximo 8 (oito) dígitos
 +
 +
<pre>
 +
^([0-9]{1,8})$ - qualquer número que tenha entre 1 e 8 dígitos - agrupando os dígitos - recomendado pois agrupa os valores
 +
^[0-9]{1,8}$ - qualquer número que tenha entre 1 e 8 dígitos - sem agrupar os dígitos, similar a opção acima
 +
[0-9]{1,8} - qualquer número que tenha entre 1 e 8 dígitos, no minimo - não recomendado
 +
</pre>
 +
 +
 +
Qualquer número que tenha exatamente 8 (oito) dígitos, e comece com 067
 +
 +
<pre>
 +
^(067)([0-9]{8})$ - qualquer número que tenha entre 1 e 8 dígitos, e comece com 067 - recomendado pois agrupa os valores
 +
^(067)(........)$ - qualquer número que tenha entre 1 e 8 caracteres, e comece com 067, similar a opção acima
 +
^067........$ - qualquer número que comece com 067, precedido por 8 caracteres, similar a opção acima
 +
^067........$ - qualquer número que comece com 067, precedido por 8 caracteres, similar a opção acima
 +
067........ - qualquer número que comece com 067, precedido por 8 caracteres, no minimo - não recomendado
 +
</pre>
 +
 +
 +
Qualquer número que tenha exatamente 8 (oito) dígitos, e comece ou não com 067
 +
 +
<pre>
 +
^(067)?([0-9]{8})$ - qualquer número que comece ou não com 067, precedido por 8 dígitos - recomendado pois agrupa os valores
 +
(067)?........ - qualquer número que comece ou não com 067, precedido por 8 caracteres, no minimo - não recomendado
 +
</pre>
 +
 +
 +
Qualquer número que tenha exatamente 8 (oito) dígitos, e comece ou não com 066, 067 ou 068
 +
 +
<pre>
 +
^(066|067|068)?([0-9]{8})$  - qualquer número que comece ou não com 066, 067 ou 068, precedido por 8 dígitos - recomendado pois agrupa os valores
 +
 +
^(06[678])?([0-9]{8})$  - qualquer número que comece ou não com 066, 067 ou 068, precedido por 8 dígitos - recomendado pois agrupa os valores
 +
 +
^(06(6|7|8))?([0-9]{8})$  - qualquer número que comece ou não com 066, 067 ou 068, precedido por 8 dígitos - recomendado pois agrupa os valores
 +
</pre>
 +
 +
Qualquer número que tenha exatamente 8 (oito) dígitos, precedido pelo 9 (nove) e comece ou não com o DDD
 +
 +
<pre>
 +
^(0[0-9]{2})?(9)?([0-9]{8})$  - qualquer número que comece ou não com 0 + DDD, precedido ou não por 9, e 8 dígitos. - recomendado pois agrupa os valores
 +
 +
^(0..)?(9)?(........)$  - qualquer número que comece ou não com 0 + DDD, precedido ou não por 9, e 8 caracteres, similar a opção acima
 +
 +
</pre>
 +
 +
Qualquer número que tenha 5 dígitos, mais utilizado por [[Voipr/Aplicativos/Route Number|RN1 (Route Number)]]
 +
 +
<pre>
 +
^(55320)$  - Qualquer número que tenha 5 dígitos e é igual a 55320, [[Voipr/Aplicativos/Route Number|RN1 da VIVO]]
 +
 +
^55320|55341$  - Qualquer número que tenha 5 dígitos e é igual a 55320 [[Voipr/Aplicativos/Route Number|RN1 da VIVO]] ou 55341 [[Voipr/Aplicativos/Route Number|RN1 da TIM]]
 +
 +
^(553..)$  - Qualquer número que tenha 5 dígitos e comece com 553, [[Voipr/Aplicativos/Route Number|RN1 das operadoras de celular]]
 +
 +
553..  - Qualquer número que tenha 5 dígitos e comece com 553, [[Voipr/Aplicativos/Route Number|RN1 das operadoras de celular]] - não recomendado
 +
 +
</pre>
 +
 +
Qualquer numero de rota que tenha 5 dígitos com exceção das rotas 55320, 55321, 55323 e 55341.
 +
 +
<pre>
 +
^553((2[^013])|(4[^1])|([0135-9][0-9]))$
 +
 +
</pre>
 +
 +
__NOEDITSECTION__
 +
[[Category:Voipr]]
 +
[[Category:Manual]]

Edição atual tal como às 11h37min de 28 de fevereiro de 2023

Uso

O uso de regex, serve para identificar uma #Expressão Regular, ou seja padrões de entrada de valores.

Sendo utilizado no aplicativos de Redirecionamento (para detecção do número discado), Tarifa (para detecção do número discado) e Rota (para detecção do número discado e do Route Number da operadora).

^06732011173$  - identifica o número 06732011173
^067........$  - identifica o número 067XXXXXXXX

Veja mais em #Exemplos, neste tópico

Expressão Regular

Uma expressão regular especifica um conjunto de sequências de caracteres. Um membro deste conjunto de sequências de caracteres é dito ser correspondido pela expressão regular. Alguns caracteres (ex: ^,.,{},[],\) têm um significado especial quando usado em uma expressão regular; outros caráteres significam eles mesmos.


  • ^ Circunflexo

Corresponde ao começo do regex, exceto quando informado dentro de [], que passa a ser uma negação dos valores


  • $ Cifra ou simbolo de dólar

Corresponde ao final do regex


  • . Ponto

Corresponde a qualquer caractere Por exemplo (....), qualquer entrada que tenha 4 caracteres


  • () Parêntesis

Corresponde a um agrupamento de entrada Por exemplo (40041001), significa que a entrada deve ser 40041001 Por exemplo (067), significa que a entrada deve ser 067


  • [] Colchetes

Corresponde a um agrupamento de entrada Por exemplo [1234], significa que a entrada deve ter um dos números informados (1,2,3 ou 4)

  • - Traço ou sinal de menos


Usado para informar um range de caracteres Por exemplo [3-7] é equivalente a [34567]

  • * Asterisco

Uma expressão seguida de *, significa, nenhuma ou varias vezes Por exemplo [0-9]*, equivalente a entrada vazia ou a repetição infinita de valores, Essa entrada equivale a [0,9]{0,}


  • + Sinal de mais

Uma expressão seguida de +, significa, uma ou mais vezes Por exemplo [0-9]+, equivalente a [0-9][0-9]*. Essa entrada equivale a [0,9]{1,}


  • {m} Chaves com um numero

A entrada deve corresponder m vezes Por exemplo [0-9]{8}, qualquer número que tenha 8 dígitos de 0 a 9


  • {m,} Chave com um numero e virgula

A entrada deve corresponder m vezes até o infinito. Por exemplo [0-9]{4,}, qualquer número que tenha no minimo 4 dígitos de 0 a 9, sem limite máximo


  • {m,n} Chaves com um numero, virgula e outro numero

A entrada deve corresponder m vezes até n Por exemplo [0-9]{1,4}, qualquer número que tenha entre 1 a 4 dígitos, de 0 a 9


  • ? Sinal de interrogação

Uma expressão seguida de ?, significa que ela pode ou não tem essa entrada. Por exemplo (067)?[0-9]{8}, qualquer número que comece ou não com 067 seguido de 8 dígitos de 0 a 9


  • | Pipe ou barra reta

Uma expressão separada com |, serve para informar que o valor deve ser uma ou outra entrada. Por exemplo (067|066)40041001, o número 40041001, precedido por 067 ou 066 Por exemplo (067|066)?40041001, o número 40041001, precedido ou não por 067 ou 066


Exemplos

  • Qualquer número que tenha exatamente 8 (oito) dígitos
^([0-9]{8})$ - qualquer dígito que se repita 8 vezes - agrupando os dígitos - recomendado pois agrupa os valores
^[0-9]{8}$ - qualquer dígito que se repita 8 vezes - sem agrupar os dígitos, similar a opção acima
[0-9]{8} - qualquer dígito que se repita 8 vezes - sem agrupar os dígitos, similar a opção acima
^.{8}$ - qualquer carácter que se repita 8 vezes
^(........)$ - qualquer entrada que tenha 8 caracteres, do começo ao fim - recomendado pois agrupa os valores
^........$ - qualquer entrada que tenha 8 caracteres, do começo ao fim, similar a opção acima
........ - qualquer entrada que tenha 8 caracteres, no minimo - não recomendado


  • Qualquer número que tenha no minimo 1 (um) e no máximo 8 (oito) dígitos
^([0-9]{1,8})$ - qualquer número que tenha entre 1 e 8 dígitos - agrupando os dígitos - recomendado pois agrupa os valores
^[0-9]{1,8}$ - qualquer número que tenha entre 1 e 8 dígitos - sem agrupar os dígitos, similar a opção acima
[0-9]{1,8} - qualquer número que tenha entre 1 e 8 dígitos, no minimo - não recomendado


Qualquer número que tenha exatamente 8 (oito) dígitos, e comece com 067

^(067)([0-9]{8})$ - qualquer número que tenha entre 1 e 8 dígitos, e comece com 067 - recomendado pois agrupa os valores
^(067)(........)$ - qualquer número que tenha entre 1 e 8 caracteres, e comece com 067, similar a opção acima
^067........$ - qualquer número que comece com 067, precedido por 8 caracteres, similar a opção acima
^067........$ - qualquer número que comece com 067, precedido por 8 caracteres, similar a opção acima
067........ - qualquer número que comece com 067, precedido por 8 caracteres, no minimo - não recomendado


Qualquer número que tenha exatamente 8 (oito) dígitos, e comece ou não com 067

^(067)?([0-9]{8})$ - qualquer número que comece ou não com 067, precedido por 8 dígitos - recomendado pois agrupa os valores
(067)?........ - qualquer número que comece ou não com 067, precedido por 8 caracteres, no minimo - não recomendado


Qualquer número que tenha exatamente 8 (oito) dígitos, e comece ou não com 066, 067 ou 068

^(066|067|068)?([0-9]{8})$  - qualquer número que comece ou não com 066, 067 ou 068, precedido por 8 dígitos - recomendado pois agrupa os valores

^(06[678])?([0-9]{8})$  - qualquer número que comece ou não com 066, 067 ou 068, precedido por 8 dígitos - recomendado pois agrupa os valores

^(06(6|7|8))?([0-9]{8})$  - qualquer número que comece ou não com 066, 067 ou 068, precedido por 8 dígitos - recomendado pois agrupa os valores

Qualquer número que tenha exatamente 8 (oito) dígitos, precedido pelo 9 (nove) e comece ou não com o DDD

^(0[0-9]{2})?(9)?([0-9]{8})$  - qualquer número que comece ou não com 0 + DDD, precedido ou não por 9, e 8 dígitos. - recomendado pois agrupa os valores

^(0..)?(9)?(........)$  - qualquer número que comece ou não com 0 + DDD, precedido ou não por 9, e 8 caracteres, similar a opção acima

Qualquer número que tenha 5 dígitos, mais utilizado por RN1 (Route Number)

^(55320)$  - Qualquer número que tenha 5 dígitos e é igual a 55320, [[Voipr/Aplicativos/Route Number|RN1 da VIVO]]

^55320|55341$  - Qualquer número que tenha 5 dígitos e é igual a 55320 [[Voipr/Aplicativos/Route Number|RN1 da VIVO]] ou 55341 [[Voipr/Aplicativos/Route Number|RN1 da TIM]]

^(553..)$  - Qualquer número que tenha 5 dígitos e comece com 553, [[Voipr/Aplicativos/Route Number|RN1 das operadoras de celular]]

553..  - Qualquer número que tenha 5 dígitos e comece com 553, [[Voipr/Aplicativos/Route Number|RN1 das operadoras de celular]] - não recomendado

Qualquer numero de rota que tenha 5 dígitos com exceção das rotas 55320, 55321, 55323 e 55341.

^553((2[^013])|(4[^1])|([0135-9][0-9]))$