Skip to main content
Data Infrastructure Insights
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Exemplos de expressões regulares

Colaboradores netapp-alavoie

Se você selecionou a abordagem de expressão regular como sua estratégia de nomenclatura de origem, poderá usar os exemplos de expressão regular como guias para suas próprias expressões usadas nos métodos de resolução automática do Data Infrastructure Insights .

Formatando expressões regulares

Ao criar expressões regulares para resolução automática do Data Infrastructure Insights , você pode configurar o formato de saída inserindo valores em um campo chamado FORMAT.

A configuração padrão é \1, o que significa que um nome de zona que corresponde à expressão regular é substituído pelo conteúdo da primeira variável criada pela expressão regular. Em uma expressão regular, valores de variáveis são criados por instruções entre parênteses. Se ocorrerem várias instruções entre parênteses, as variáveis serão referenciadas numericamente, da esquerda para a direita. As variáveis podem ser usadas no formato de saída em qualquer ordem. Texto constante também pode ser inserido na saída, adicionando-o ao campo FORMATO.

Por exemplo, você pode ter os seguintes nomes de zona para esta convenção de nomenclatura de zona:

 [Zone number]_[data center]_[hostname]_[device type]_[interface number]
* S123_Miami_hostname1_filer_FC1
* S14_Tampa_hostname2_switch_FC4
* S3991_Boston_hostname3_windows2K_FC0
* S44_Raleigh_hostname4_solaris_FC1

E você pode querer que a saída esteja no seguinte formato:

 [hostname]-[data center]-[device type]
Para fazer isso, você precisa capturar os campos de nome do host, data center e tipo de dispositivo em variáveis e usá-los na saída.  A seguinte expressão regular faria isso:
 .*?_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_.*
Como há três conjuntos de parênteses, as variáveis \1, \2 e \3 seriam preenchidas.

Você pode então usar o seguinte formato para receber a saída no seu formato preferido:

 \2-\1-\3
Sua saída seria a seguinte:
hostname1-Miami-filer
hostname2-Tampa-switch
hostname3-Boston-windows2K
hostname4-Raleigh-solaris

Os hifens entre as variáveis fornecem um exemplo de texto constante que é inserido na saída formatada.

Exemplos

Exemplo 1 mostrando nomes de zonas

Neste exemplo, você usa a expressão regular para extrair um nome de host do nome da zona. Você pode criar uma expressão regular se tiver algo semelhante aos seguintes nomes de zona:

  • S0032_myComputer1Name-HBA0

  • S0434_myComputer1Name-HBA1

  • S0432_nome_meu_computador1-HBA3

A expressão regular que você poderia usar para capturar o nome do host seria:

 S[0-9]+_([a-zA-Z0-9]*)[_-]HBA[0-9]
O resultado é uma correspondência de todas as zonas que começam com S, seguidas por qualquer combinação de dígitos, seguidas por um sublinhado, o nome do host alfanumérico (myComputer1Name), um sublinhado ou hífen, as letras maiúsculas HBA e um único dígito (0-9).  Somente o nome do host é armazenado na variável *\1*.

A expressão regular pode ser dividida em seus componentes:

  • "S" representa o nome da zona e inicia a expressão. Isso corresponde apenas a um "S" no início do nome da zona.

  • Os caracteres [0-9] entre parênteses indicam que o que segue "S" deve ser um dígito entre 0 e 9, inclusive.

  • O sinal + indica que a ocorrência das informações nos colchetes anteriores deve existir 1 ou mais vezes.

  • O _ (sublinhado) significa que os dígitos após S devem ser seguidos imediatamente por apenas um caractere de sublinhado no nome da zona. Neste exemplo, a convenção de nomenclatura de zona usa o sublinhado para separar o nome da zona do nome do host.

  • Após o sublinhado obrigatório, os parênteses indicam que o padrão contido será armazenado na variável \1.

  • Os caracteres entre colchetes [a-zA-Z0-9] indicam que os caracteres correspondentes são todas letras (independentemente de maiúsculas e minúsculas) e números.

  • O * (asterisco) após os colchetes indica que os caracteres entre colchetes ocorrem 0 ou mais vezes.

  • Os caracteres entre colchetes [_-] (sublinhado e traço) indicam que o padrão alfanumérico deve ser seguido por um sublinhado ou um traço.

  • As letras HBA na expressão regular indicam que essa sequência exata de caracteres deve ocorrer no nome da zona.

  • O conjunto final de caracteres entre colchetes [0-9] corresponde a um único dígito de 0 a 9, inclusive.

Exemplo 2

Neste exemplo, pule até o primeiro sublinhado "", depois combine E e tudo depois dele até o segundo "" e então pule tudo depois dele.

Zona: Z_E2FHDBS01_E1NETAPP

Nome do host: E2FHDBS01

RegExp: .?(E.?).*?

Exemplo 3

Os parênteses "( )" ao redor da última seção na Expressão Regular (abaixo) identificam qual parte é o nome do host. Se você quisesse que VSAN3 fosse o nome do host, seria: _([a-zA-Z0-9]).*

Zona: A_VSAN3_SR48KENT_A_CX2578_SPA0

Nome do host: SR48KENT

RegExp: _[a-zA-Z0-9]+_([a-zA-Z0-9]).*

Exemplo 4 mostrando um padrão de nomenclatura mais complicado

Você pode criar uma expressão regular se tiver algo semelhante aos seguintes nomes de zona:

  • meuNomeDoComputador123-HBA1_Symm1_FA3

  • meuNomeDoComputador123-HBA2_Symm1_FA5

  • meuNomeComputador123-HBA3_Symm1_FA7

A expressão regular que você poderia usar para capturar isso seria:

 ([a-zA-Z0-9]*)_.*
A variável \1 conteria apenas _myComputerName123_ após ser avaliada por esta expressão.

A expressão regular pode ser dividida em seus componentes:

  • Os parênteses indicam que o padrão contido será armazenado na variável \1.

  • Os caracteres entre colchetes [a-zA-Z0-9] significam que qualquer letra (independentemente de maiúsculas e minúsculas) ou dígito corresponderá.

  • O * (asterisco) após os colchetes indica que os caracteres entre colchetes ocorrem 0 ou mais vezes.

  • O caractere _ (sublinhado) na expressão regular significa que o nome da zona deve ter um sublinhado imediatamente após a sequência alfanumérica correspondida pelos colchetes precedentes.

  • O . (ponto) corresponde a qualquer caractere (um curinga).

  • O * (asterisco) indica que o curinga do ponto precedente pode ocorrer 0 ou mais vezes.

    Em outras palavras, a combinação .* indica qualquer caractere, qualquer número de vezes.

Exemplo 5 mostrando nomes de zonas sem um padrão

Você pode criar uma expressão regular se tiver algo semelhante aos seguintes nomes de zona:

  • myComputerName_HBA1_Symm1_FA1

  • myComputerName123_HBA1_Symm1_FA1

A expressão regular que você poderia usar para capturar isso seria:

 (.*?)_.*
A variável \1 conteria _myComputerName_ (no primeiro exemplo de nome de zona) ou _myComputerName123_ (no segundo exemplo de nome de zona).  Essa expressão regular corresponderia a tudo antes do primeiro sublinhado.

A expressão regular pode ser dividida em seus componentes:

  • Os parênteses indicam que o padrão contido será armazenado na variável \1.

  • O .* (asterisco ponto final) corresponde a qualquer caractere, qualquer número de vezes.

  • O * (asterisco) após os colchetes indica que os caracteres entre colchetes ocorrem 0 ou mais vezes.

  • O caractere ? torna a correspondência não gananciosa. Isso força a parada da correspondência no primeiro sublinhado, em vez do último.

  • Os caracteres _.* correspondem ao primeiro sublinhado encontrado e a todos os caracteres que o seguem.

Exemplo 6 mostrando nomes de computadores com um padrão

Você pode criar uma expressão regular se tiver algo semelhante aos seguintes nomes de zona:

  • Storage1_Switch1_myComputerName123A_A1_FC1

  • Storage2_Switch2_myComputerName123B_A2_FC2

  • Storage3_Switch3_myComputerName123T_A3_FC3

A expressão regular que você poderia usar para capturar isso seria:

 .*?_.*?_([a-zA-Z0-9]*[ABT])_.*
Como a convenção de nomenclatura de zona tem mais um padrão, poderíamos usar a expressão acima, que corresponderá a todas as instâncias de um nome de host (myComputerName no exemplo) que termina com A, B ou T, colocando esse nome de host na variável \1.

A expressão regular pode ser dividida em seus componentes:

  • O .* (asterisco ponto final) corresponde a qualquer caractere, qualquer número de vezes.

  • O caractere ? torna a correspondência não gananciosa. Isso força a parada da correspondência no primeiro sublinhado, em vez do último.

  • O caractere de sublinhado corresponde ao primeiro sublinhado no nome da zona.

  • Assim, a primeira combinação .*?_ corresponde aos caracteres Storage1_ no primeiro exemplo de nome de zona.

  • A segunda combinação .*?_ se comporta como a primeira, mas corresponde a Switch1_ no primeiro exemplo de nome de zona.

  • Os parênteses indicam que o padrão contido será armazenado na variável \1.

  • Os caracteres entre colchetes [a-zA-Z0-9] significam que qualquer letra (independentemente de maiúsculas e minúsculas) ou dígito corresponderá.

  • O * (asterisco) após os colchetes indica que os caracteres entre colchetes ocorrem 0 ou mais vezes.

  • Os caracteres entre colchetes na expressão regular [ABT] correspondem a um único caractere no nome da zona, que deve ser A, B ou T.

  • O _ (sublinhado) após os parênteses indica que a correspondência do caractere [ABT] deve ser seguida de um sublinhado.

  • O .* (asterisco ponto final) corresponde a qualquer caractere, qualquer número de vezes.

O resultado disso faria com que a variável \1 contivesse qualquer sequência alfanumérica que:

  • foi precedido por um certo número de caracteres alfanuméricos e dois sublinhados

  • foi seguido por um sublinhado (e então qualquer número de caracteres alfanuméricos)

  • tinha um caractere final de A, B ou T, antes do terceiro sublinhado.

Exemplo 7

Zona: meuNomeDoComputador123_HBA1_Symm1_FA1

Nome do host: meuNomeDoComputador123

Exp. Reg.: ([a-zA-Z0-9]+)_.*

Exemplo 8

Este exemplo encontra tudo antes do primeiro _.

Zona: MyComputerName_HBA1_Symm1_FA1

MyComputerName123_HBA1_Symm1_FA1

Nome do host: MyComputerName

Exp. regular: (.?)_.

Exemplo 9

Este exemplo encontra tudo depois do 1º _ e até o segundo _.

Zona: Z_NomeDoMeuComputador_NomeDeArmazenamento

Nome do host: Nome do meu computador

Exp. Reg.: .?(.?).*?

Exemplo 10

Este exemplo extrai "MyComputerName123" dos exemplos de zona.

Zona: Armazenamento1_Switch1_NomeDoMeuComputador123A_A1_FC1

Storage2_Switch2_MyComputerName123B_A2_FC2

Storage3_Switch3_MyComputerName123T_A3_FC3

Nome do host: MeuNomeDoComputador123

RegExp: .?.?([a-zA-Z0-9]+)[ABT]_.

Exemplo 11

Zona: Armazenamento1_Switch1_NomeDoMeuComputador123A_A1_FC1

Nome do host: MeuNomeDoComputador123A

RegExp: .?.?([a-zA-z0-9]+).*?

Exemplo 12

O ^ (circunflexo ou circunflexo) dentro de colchetes nega a expressão, por exemplo, [^Ff] significa qualquer coisa, exceto F maiúsculo ou minúsculo, e [^az] significa tudo, exceto a até z minúsculo, e no caso acima, qualquer coisa, exceto _. A instrução de formato adiciona "-" ao nome do host de saída.

Zona: mhs_apps44_d_A_10a0_0429

Nome do host: mhs-apps44-d

RegExp: ()_([AB]).*Formato no Data Infrastructure Insights: \1-\2 ([^_])_ ()_([^_]).*Formato no Data Infrastructure Insights: \1-\2-\3

Exemplo 13

Neste exemplo, o alias de armazenamento é delimitado por "\" e a expressão precisa usar "\\" para definir que há realmente "\" sendo usados na string e que eles não fazem parte da expressão em si.

Alias de armazenamento: \Hosts\E2DOC01C1\E2DOC01N1

Nome do host: E2DOC01N1

Exp.Reg: \\.?\\.?\\(.*?)

Exemplo 14

Este exemplo extrai "PD-RV-W-AD-2" dos exemplos de zona.

Zona: PD_D-PD-RV-W-AD-2_01

Nome do host: PD-RV-W-AD-2

Exp. Reg.: -(.*-\d).*

Exemplo 15

A configuração de formato neste caso adiciona "US-BV-" ao nome do host.

Zona: SRV_USBVM11_F1

Nome do host: US-BV-M11

RegExp: SRV_USBV([A-Za-z0-9]+)_F[12]

Formato: US-BV-\1