RegExp (gb.pcre)
Esta classe representa uma expressão regular, com o qual você pode executar correspondências de várias strings e recuperar sub correspondências (as partes da string alvo que correspondem as expressões entre parênteses).
Constants
Anchored
|
Se esta constante for especificada, o padrão é obrigado a ser "anchored", ou seja, é restrito para coincidir com apenas no primeiro ponto da correspondência na
string que está sendo pesquisada (a "string subject").
|
BadMagic
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
BadOption
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
BadUTF8
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
BadUTF8Offset
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
Callout
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
Caseless
|
Especifica uma correspondência case-insensitive.
|
DollarEndOnly
|
Especifica que a expressão de cifrão ($) não irá corresponder a uma nova linha no final da string correspondente, mas apenas o fim real da string. Por padrão, um cifrão vai coincidir com o final da string, com ou sem uma nova linha que a preceda.
|
DotAll
|
Especifica que a expressão regular ponto (.) vai mesmo corresponder a finais de linha, o que lhe permite tratar um texto multi-linha como uma longa linha.
|
Extended
|
Especifica a sintaxe da expressão regular estendida. Neste modo, os espaços em branco e comentários são permitidos em suas expressões regulares. Os comentários são Perl-style, ou seja, eles começam com um hash (#) e continuam até o final da linha.
|
Extra
|
Esta opção foi inventada, a fim de ativar a funcionalidade adicional PCRE que é incompatível com Perl, mas atualmente é de
muito pouco uso.
|
Greedy
|
|
MatchLimit
|
Especifica o número máximo de correspondências para retornar.
|
MultiLine
|
Especifica que o texto da correspondência é multi-line, de modo que os modificadores acento circunflexo (^) e ($) corresponderão aos começos e finais de linhas em qualquer lugar dentro do texto.
|
NoAutoCapture
|
Se esta opção é especificada, ela desativa o uso de parênteses, captura numeradas no padrão.
|
NoMatch
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
NoMemory
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
NoSubstring
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
NoUTF8Check
|
Quando a opção UTF8 está definida, a validade do padrão como uma string UTF-8 é verificada automaticamente.
|
NotBOL
|
Com a constante MultiLine especificada, indica que a expressão acento circunflexo (^) não deve coincidir com o início da string. Sem definir a constante MultiLine, indica que o acento circunflexo não deve corresponde a nada.
|
NotEOL
|
Com a constante MultiLine especificada, indica que a expressão de cifrão ($) não deve coincidir com o final da string. Sem a constante MultiLine, indica que o dólar não deve corresponde a nada.
|
NotEmpty
|
Uma string vazia não é considerado um correspondência válida se esta opção for definida. Se existem alternativas no padrão, elas são
testadas. Se todas as alternativas corresponder a string vazia, toda a correspondência falhará.
|
Null
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
UTF8
|
Esta opção faz PCRE considerar tanto o padrão quanto as correspondências como strings de caracteres UTF-8 em vez de strings com caracteres de byte único.
|
Ungreedy
|
Especifica uma correspondência especial por padrão, como se cada um modificador de repetição fossem seguidos por "?". Por exemplo, com a correspondência "aabaaaab" e um padrão de "a + b.", Por padrão, o texto de partida seria toda a string, mas com Ungreedy especificado, o correspondência vai retornar "AAB".
|
UnknownNode
|
Esta constante PCRE de erro não é usada em Gambas (ainda).
|
Static methods
FindAll
|
|
Match
|
Esse método estático usa os mesmos parâmetros que o construtor Regexp. No entanto, não cria um novo objeto, mas em vez disso, retorna uma referência corresponde ao padrão.
|
Replace
|
Encontra todas as ocorrência do Pattern no Subject, e retornar uma string onde todas são substituídos pela string Replace.
|
Properties
Count
|
Retorna o número de submatches produzidos pela expressão regular.
|
Error
|
Retorne o código de erro levantado pela última chamada para o método Compile ou Exec.
|
Offset
|
Retorna o deslocamento do início da correspondência, ou seja, quantos caracteres precedê-lo na string subject.
|
Pattern
|
Retorne o padrão da expressão regular.
|
SubMatches
|
A submatch é uma parte de seu padrão entre parênteses. Por exemplo, dado o padrão "brown (S+)", o primeiro e único elemento na coleção SubMatches seria a palavra seguinte "brown" no texto do correspondente. Com um tema de "quick brown fox", SubMatches[0] deve conter "fox" e Submatches.Count seria 1.
|
Subject
|
Retorne a expressão subject regular.
|
Text
|
Contém o texto devolvido pela correspondência. Com um tema de "rápida raposa marrom" e um padrão de "marrom (\S+)", Texto conteria "raposa marrom".
|
Methods
Compile
|
Compilar permite a você pré-compilar uma expressão regular para execução posterior pelo método Exec. Isso é útil quando você tem um padrão que você quer comparar em um monte de texto, porque a compilação de uma vez e executar muitas vezes é muito mais rápido do que a compilação e execução de cada vez.
|
Exec
|
Exec permite que você execute uma expressão regular compilada anteriormente contra um texto do correspondente. Isto é útil principalmente quando você tem muitos textos subject diferentes que você quer comparar, porque você pode compilar uma expressão regular uma vez e usar Exec repetidamente para aumentar a velocidade.
|
Sub registros
A correspondência é uma parte de seu padrão entre parênteses.
Para acessar as correspondência use a propriedade Count e o assessor matriz da classe RegExp.
Exemplo
Por exemplo, dada a expressão regular:
e a string:
A rápida raposa marrom maliciosamente saltou sobre o cão preguiçoso
a propriedade do seu objeto Regexp
Text
(ou RegEx[0].Text) seria:
e sua propriedade
RegExp[1].Text
daria o texto da primeira correspondência:
o deslocamento na seqüência é dado pela propriedade Offset, 10 neste caso.
Este é apenas um exemplo simples do que as expressões regulares podem fazer por você durante a análise input textual; eles são uma ferramenta muito poderosa. Por exemplo, a seguinte expressão regular irá extrair endereços de e-mail válidos para você:
(?i)\b[a-z0-9._%\-]+@[a-z0-9._%\-]+\.[A-Z]{2,4}\b
Exemplo de programa para analisar a saída do vmstat -D:
Dim sDiskIO As String
Dim cVal As New Collection
Dim rMatch As New RegExp
' obter estados dos discos I/O
Exec ["vmstat", "-D"] To sDiskIO
For Each sVal In ["total reads", "read sectors", "writes", "written sectors"]
rMatch.Compile("^\\s*(\\d+)\\s+" & sVal, RegExp.MultiLine)
rMatch.Exec(sDiskIO)
If rMatch.Count = 1 Then
cVal[Replace(sVal, " ", "_")] = rMatch[1].Text
Else
Error.Raise("Missing '" & sVal & "' in 'vmstat -D' output")
Endif
Next
Print "total leitura: " & cVal!total_reads & " read sectors:" & cVal!read_sectors
Print "escrita: " & cVal!writes & " written sectors: " & cVal!written_sectors
Veja também