Class: Regex

@nginstack/engine/lib/regexp/Regex~ Regex


new Regex(pattern, sensitivity, syntax)

Este é o objeto que representa uma expressão regular. Ele abstrai um regex pattern, com isso, este objeto possui métodos para checar o casamento do padrão com uma string qualquer. Possui também uma série de métodos acessórios para obter informações adicionais ou auxiliar no casamento entre padrão e string pesquisada. Esta API é diferente da classe global RegExp especificada pela linguagem JavaScript.

Parameters:
Name Type Argument Description
pattern string

Padrão que define o objeto.

sensitivity number <nullable>

Se é case sensitive ou insensitive. Deve-se utilizar uma das constantes estáticas do objeto aqui.

syntax number <nullable>

Define qual sintaxe será utilizada para interpretar o padrão. Deve-se utilizar uma das constantes estáticas do objeto aqui.

Examples
var Regex = require('@nginstack/engine/lib/regexp/Regex');
var regex = new Regex("(\\d+)(?:\\s*)(cm|inch)");
var Regex = require('@nginstack/engine/lib/regexp/Regex');
var regex = new Regex("*.exe", Regex.CASE_INSENSITIVE, Regex.SYNTAX_WILDCARD);

Members


<static, constant> CARET_AT_OFFSET :number

A propriedade CaretMode define os diferentes significados do acento circunflexo (^) em uma expressão regular. Esta constante define um modo que a propriedade CaretMode pode assumir.
Neste modo, o acento circunflexo corresponde ao start off-set da pesquisa.

Type:
  • number
See:

<static, constant> CARET_AT_ZERO :number

A propriedade CaretMode define os diferentes significados do acento circunflexo (^) em uma expressão regular. Esta constante define um modo que a propriedade CaretMode pode assumir.
Neste modo, o acento circunflexo corresponde ao índice zero na string pesquisada.

Type:
  • number
See:

<static, constant> CARET_WONT_MATCH :number

A propriedade CaretMode define os diferentes significados do acento circunflexo (^) em uma expressão regular. Esta constante define um modo que a propriedade CaretMode pode assumir.
Neste modo, não assume nenhuma conotação.

Type:
  • number
See:

<static, constant> CASE_INSENSITIVE :number

Constante a ser usada na chamada de métodos da API para indicar que o comportamento do método é case insensitive.

Type:
  • number
See:

<static, constant> CASE_SENSITIVE :number

Constante a ser usada na chamada de métodos da API para indicar que o comportamento do método é case sensitive.

Type:
  • number
See:

<static, constant> SYNTAX_FIXED_STRING :number

Esta constante deve ser utilizada para definir qual regras de interpretação será utilizada pelo objeto.
Para este modo, os meta-caracteres não serão interpretados.

Type:
  • number
See:

<static, constant> SYNTAX_REG_EXP :number

Esta constante deve ser utilizada para definir qual regras de interpretação será utilizada pelo objeto.
Para este modo, a sintaxe utilizada é Perl-like.

Type:
  • number
See:

<static, constant> SYNTAX_REG_EXP2 :number

Esta constante deve ser utilizada para definir qual regras de interpretação será utilizada pelo objeto.
Esta sintaxe é similar a SYNTAX_REG_EXP, mas com quantificadores vorazes. Este é o padrão.

Type:
  • number
See:

<static, constant> SYNTAX_W3C_XML_SCHEMA_11 :number

Esta constante deve ser utilizada para definir qual regras de interpretação será utilizada pelo objeto.
Nesta caso, o padrão é uma expressão regular como definido pela especificação W3C Schema XML 1.1.

Type:
  • number
See:

<static, constant> SYNTAX_WILDCARD :number

Esta constante deve ser utilizada para definir qual regras de interpretação será utilizada pelo objeto.
Para este modo, é fornecida uma sintaxe padrão simples, semelhante ao utilizado por shells (interpretadores de comando) para "file glob".

Type:
  • number
See:

<static, constant> SYNTAX_WILDCARD_UNIX :number

Esta constante deve ser utilizada para definir qual regras de interpretação será utilizada pelo objeto.
Esta sintaxe é similar a SYNTAX_WILDCARD, mas com o comportamento de um UNIX shell.

Type:
  • number
See:

Methods


cap(matchedIndex)

Retorna os sub-itens encontrados de acordo com o padrão. O índice 0 corresponde ao casamento com toda a expressão, o índice 1 corresponde ao casamento com a sub-expressão que está dentro do primeiro par de parênteses, o índice 2 corresponde a sub-expressão presente dentro do segundo par de parênteses e assim por diante.

Parameters:
Name Type Description
matchedIndex number
See:
Returns:

Retorna uma string correspondente ao casamento do índice informado.

Type
string
Example
var Regex = require('@nginstack/engine/lib/regexp/Regex');
var rx = new Regex("(\\d+)(?:\\s*)(cm|inch)");
var pos = rx.indexIn("Length: 189cm");
if (pos > -1) {
  var value = rx.cap(1); // "189"
  var unit = rx.cap(2);  // "cm"
}

captureCount()

Retorna o número de capturas conseguidas a partir da expressão regular.

See:
Returns:

Número de capturas

Type
number
Example
var Regex = require('@nginstack/engine/lib/regexp/Regex');
var rx = new Regex("(\\d+)(?:\\s*)(cm|inch)");
rx.indexIn("Length: 189cm");
var results = [];
for (var i = 0; i < rx.captureCount(); ++i) {
  results.push(rx.cap(i))
}

capturedTexts()

Retorna uma lista de strings, onde cada elemento é uma captura.

A primeira string na lista é a sequência de todo o casamento.
Cada elemento da lista subsequente contém uma string que combina com uma subexpressão (captura) da expressão regular.
Por exemplo:

See:
Returns:

Textos capturados.

Type
Array.<string>
Example
var Regex = require('@nginstack/engine/lib/regexp/Regex');
var rx = new Regex("(\\ d +) (\\ s *) (cm | polegada (es))?");
var pos = rx.indexIn("Duração: 36 polegadas");
var list = rx.capturedTexts();
// A lista é agora ("36 polegadas", "36", "", "polegadas", "es")

exactMatch(str)

Retorna true se str é correspondido exatamente por esta expressão regular, caso contrário retorna false. Você pode determinar o quanto da string foi combinado chamando matchedLength(). Para uma determinada cadeia R, exactMatch("R") é o equivalente a indexIn("^R$").

Por exemplo, se a expressão regular é "blue", então ExactMatch() retorna verdadeiro somente para ExactMatch("blue"). Para parâmetros como "bluebell", "blutak" e "lightblue", exactMatch() retorna false e matchedLength() irá retornar 4, 3 e 0, respectivamente.

Esta função define matchedLength(), capturedTexts(), e pos ().

Parameters:
Name Type Description
str string

Expressão para tentar o casamento com o Regex.

Returns:
Type
boolean

getCaseSensitivity()

Obtém o valor da propriedade que define se o casamento deve ser case sensitive ou insensitive.

See:
Returns:

Valor da propriedade.

Type
number

getErrorString()

Retorna uma string que explica por que um padrão regexp é inválido, caso contrário retorna "no error occurred".

Returns:

Descrição do erro.

Type
string

getPattern()

Retorna a string de caracteres do padrão da expressão regular. Note que o padrão retornado é afetado pela propriedade PatternSyntax do objeto.

See:
Returns:
Type
string

getPatternSyntax()

Retorna a sintaxe que está em uso pelo objeto Regex. A sintaxe default é SYNTAX_REG_EXP2.

See:
Returns:

inteiro que deve ser comparado com as constantes estáticas SYNTAX_*.

Type
number

indexIn(str, offSet, caretMode)

Este método tentará encontrar uma correspondência em str a partir da posição offSet. Se offSet é -1, a pesquisa começará no último caractere, se -2, no anterior ao último caractere etc.
O parâmetro caretMode pode ser utilizado para definir se ^ deve corresponder ao índice 0 ou pertencer ao padrão.

Parameters:
Name Type Argument Description
str string

String onde será buscado o padrão.

offSet number <nullable>

deslocamento em str a partir do inicio. O casamento tentará ser realizado no conteúdo após o deslocamento.

caretMode number <nullable>

Deve ser utilizada uma das constantes estáticas para definir este parâmetro. Este parâmetro define o significado do caret (^) no padrão.

Returns:

Retorna a posição do primeiro casamento, ou -1 se não houve casamento.

Type
number

isEmpty()

Retorna true se a string padrão é vazia, caso contrário retorna false.
Se você chamar ExactMatch() com um padrão vazio, com uma string vazia em seu parâmetro, retornará true, caso contrário ele retorna falso, uma vez que ele opera sobre toda a string. Se você chamar indexIn() com um padrão vazio em qualquer cadeia ele irá retornar o offset (0 por padrão), porque o padrão de vazio corresponde ao "vazio" no início da string. Neste caso o valor retornado por matchedLength () será 0.

Returns:
Type
boolean

isMinimal()

Retorna true se o minimal matching estiver ativada, caso contrário retorna false.

See:
Returns:
Type
boolean

isValid()

Retorna verdadeiro se a expressão regular é válida, caso contrário retorna false.
O padrão "[az" é um exemplo de um padrão inválido, uma vez que carece de um colchete final.
Note que a validade de uma regexp também pode depender da configuração de sintaxe, por exemplo *.html é válido para a sintaxe SYNTAX_WILDCARD, mas é inválido para SYNTAX_REG_EXP.

See:
Returns:
Type
boolean

lastIndexIn(str, offSet, caretMode)

Este método tentará encontrar a ultima correspondência em str a partir da posição offSet. Se offSet é -1, a pesquisa considerará apenas o último caractere, se -2, considerará o penúltimo e o último, e assim por diante.

O parâmetro caretMode pode ser utilizado para definir se ^ deve corresponder ao índice 0 ou pertencer ao padrão.

Parameters:
Name Type Description
str string

String onde será buscado o padrão.

offSet number

deslocamento em str a partir do inicio. O casamento tentará ser realizado no conteúdo após o deslocamento.

caretMode number

Dever ser utilizada uma das constantes estáticas para definir este parâmetro. Este parâmetro define o significado do caret (^) no padrão.

Returns:

Retorna a posição do primeiro casamento, ou -1 se não houve casamento.

Type
number

matchedLength()

Retorna o comprimento da string do último casamento, ou -1 se não houve casamento. Esta função deve ser executada apenas após uma chamada para indexIn() ou disparará uma exceção.

See:
Returns:
Type
number

pos(n)

Retorna a posição da enésima do texto capturado na string pesquisada. Se n é 0 (o padrão), pos() retorna a posição do casamento completo.

Parameters:
Name Type Description
n number

Posição da captura na string do padrão.

Returns:

posição na string pesquisada da captura informada no parâmetro n.

Type
number
Example
var Regex = require('@nginstack/engine/lib/regexp/Regex');
var rx = new Regex("/([a-z]+)/([a-z]+)");
rx.indexIn( "Output /dev/null" ); // retorna 7 (posição do /dev/null)
rx.pos(0); // retorna 7 (posição do /dev/null)
rx.pos(1); // retorna 8 (posição de dev)
rx.pos(2); // retorna 12 (posição de null)

setCaseSensitivity(constCaseSensitive)

Modifica o valor da propriedade que define se o casamento deve ser case sensitive ou insensitive.

Parameters:
Name Type Description
constCaseSensitive

A constante que informa o case sensitivity: Regex.CASE_INSENSITIVE ou Regex.CASE_SENSITIVE.


setMinimal(isMinimal)

Habilita ou desabilita o minimal matching. Se o isMinimal é falso, o matching será agressivo (máxima), que é o padrão.

Parameters:
Name Type Description
isMinimal boolean

setPattern(pattern)

Define a sequência de caracteres para o padrão. A case sensitivity, wildcard, e as opções de minimal matching não são alteradas.

Parameters:
Name Type Description
pattern string

Padrão a ser alterado.

See:

setPatternSyntax(constPatternSyntax)

Define o modo de sintaxe usada pelo objeto para interpretar o padrão. O padrão é SYNTAX_REG_EXP2.

Parameters:
Name Type Description
constPatternSyntax number

Deve-se utilizar as constantes estáticas SYNTAX_* para alimentar este parâmetro.

See: