Sumário

Search

  1. Prefácio
  2. A Linguagem de Transformação
  3. Constantes
  4. Operadores
  5. Variáveis
  6. Datas
  7. Funções
  8. Criação de funções personalizadas
  9. Referência de API da Função Personalizada

Referência de Linguagem de Transformação

Referência de Linguagem de Transformação

REG_EXTRACT

REG_EXTRACT

Extrai sub-padrões de uma expressão regular dentro de um valor de entrada. Por exemplo, de um padrão de expressão regular para um nome completo, você pode extrair o primeiro nome ou sobrenome.
Use a função REG_REPLACE para substituir um padrão de caractere em uma string com outro padrão de caractere.

Sintaxe

REG_EXTRACT(
subject
,
'pattern', subPatternNum
, match_from_start
)
A tabela a seguir descreve os argumentos para este comando:
Argumento
Obrigatório/
Opcional
Descrição
assunto
Obrigatório
Tipo de dados de cadeia. Passa o valor que você deseja comparar em relação ao padrão de expressão regular.
padrão
Obrigatório
Tipo de dados de cadeia. Padrão de expressão regular que você deseja corresponder. É necessário usar a sintaxe de expressão regular compatível com perl. Coloque o padrão entre aspas simples. Coloque cada subpadrão entre parênteses.
subPatternNum
Opcional
Valor inteiro. Número de subpadrão da expressão regular que você deseja corresponder. Use as diretrizes a seguir para determinar o número de subpadrão.
  • nenhum valor ou 1. Extrai o primeiro sub-padrão da expressão regular.
  • 2. Extrai o segundo sub-padrão da expressão regular.
  • n. Extrai o
    n
    th sub-padrão de expressão regular.
O padrão é 1.
match_from_start
Opcional
Valor numérico. Retorna a subcadeia se uma correspondência for encontrada no início da cadeia. Use as diretrizes a seguir para determinar a correspondência do valor inicial.
  • 0. Faz a correspondência do padrão com a string de assunto no índice inicial ou em qualquer índice.
  • Diferente de zero. Faz a correspondência do padrão com a string de assunto do índice inicial.

Usando sintaxe de Expressão Regular Compatível com perl

Você deve usar a sintaxe de expressão regular compatível com perl com as funções REG_EXTRACT, REG_MATCH e REG_REPLACE.
A seguinte tabela fornece diretrizes de sintaxe de expressão regular compatíveis com perl:
Sintaxe
Descrição
. (um ponto)
Faz a correspondência de qualquer caractere.
[a-z]
Corresponde a uma instância de um caractere em letra minúscula. Por exemplo, [a-z] corresponde a ab. Use [A-Z] para corresponder a caracteres em letra maiúscula.
\d
Faz a correspondência da instância de qualquer dígito de 0 a 9.
\s
Faz a correspondência de um caractere de espaço em branco.
\w
Corresponde a um caractere alfanumérico, inclusive o caractere sublinhado (_)
()
Agrupa uma expressão. Por exemplo, os parênteses em (\d-\d-\d\d) agrupam a expressão \d\d-\d\d, que encontra qualquer grupo de dois números seguido de um hífen e de qualquer grupo de dois números, como em 12-34.
{}
Faz a correspondência do número de caracteres. Por exemplo, \d{3} corresponde a qualquer grupo de três números, como 650 ou 510. Ou, [a-z]{2} corresponde a qualquer grupo de duas letras, como CA ou NY.
?
Faz a correspondência do caractere ou grupo de caracteres precedente nenhuma ou uma vez. Por exemplo, \d{3}(-{d{4})? faz a correspondência de qualquer grupo de três números, que pode ser seguido de um hífen ou de qualquer grupo de quatro números.
* (um asterisco)
Faz a correspondência de nenhuma ou mais instâncias dos valores que seguem o asterisco. Por exemplo, *0 é qualquer valor que preceda um 0.
+
Faz a correspondência de uma ou mais instâncias dos valores que seguem o sinal de adição. Por exemplo, \w+ é qualquer valor que siga um caractere alfanumérico.
Por exemplo, a seguinte expressão regular encontra códigos postais norte-americanos de 5 dígitos, como 93930, e códigos postais de 9 dígitos, como 93930-5407:
\d{5}(-\d{4})?
\d{5} refere-se a qualquer grupo de cinco números, como 93930. Os parênteses em torno de -\d{4} agrupam esse segmento da expressão. O hífen representa o hífen de um código de 9 dígitos, como em 93930-5407. \d{4} refere-se a qualquer grupo de quatro números, como 5407. O ponto de interrogação determina que o hífen e os quatro últimos dígitos são opcionais ou podem aparecer uma vez.

Convertendo Sintaxe COBOL em Sintaxe de Expressão Regular Compatível com Perl

Se estiver familiarizado com a sintaxe COBOL, você poderá usar as informações a seguir para gravar expressões regulares compatíveis com perl.
A seguinte tabela mostra exemplos de sintaxe COBOL e seus equivalentes perl:
Sintaxe COBOL
Sintaxe perl
Descrição
9
\d
Faz a correspondência da instância de qualquer dígito de 0 a 9.
9999
\d\d\d\d
ou
\d{4}
Corresponde a quaisquer quatro dígitos de 0 a 9, como em 1234 ou 5936.
x
[a-z]
Faz a correspondência da instância de uma letra.
9xx9
\d[a-z][a-z]\d
Corresponde a qualquer número seguido de duas letras e outro número, como em 1ab2.

Converter Sintaxe SQL em Sintaxe de Expressão Regular compatível com perl

Se estiver familiarizado com a sintaxe SQL, você poderá usar as informações a seguir para gravar expressões regulares compatíveis com perl.
A seguinte tabela mostra exemplos de sintaxe SQL e seus equivalentes perl:
Sintaxe SQL
Sintaxe perl
Descrição
%
. *
Corresponde a qualquer cadeia.
A%
A.*
Combina a letra "A" seguida por qualquer cadeia, como em Astro.
_
. (um ponto)
Faz a correspondência de qualquer caractere.
A_
A.
Combina "A" seguida por qualquer caractere, como AZ.

Valor de Retorno

Retorna o valor do sub-padrão
n
th que é parte do valor de entrada. O sub-padrão
nth
é baseado no valor que você especifica para subPatternNum.
NULL se a entrada for um valor nulo ou se o padrão for nulo.

Exemplo

Você pode usar REG_EXTRACT em uma expressão para extrair nomes do meio de uma expressão regular que corresponde ao primeiro nome, ao nome do meio e ao sobrenome. Por exemplo, a seguinte expressão retorna o nome do meio de uma expressão regular:
REG_EXTRACT( Employee_Name, '(\w+)\s+(\w+)\s+(\w+)',2)
Employee_Name
Return Value
Stephen Graham Smith
Graham
Juan Carlos Fernando
Carlos