Exemplos de expressão regular
- Formatando expressões regulares
- Exemplos
- Exemplo 1 mostrando nomes de zona
- Exemplo 2
- Exemplo 3
- Exemplo 4 mostrando um padrão de nomenclatura mais complicado
- Exemplo 5 mostrando nomes de zona sem um padrão
- Exemplo 6 mostrando nomes de computadores com um padrão
- Exemplo 7
- Exemplo 8
- Exemplo 9
- Exemplo 10
- Exemplo 11
- Exemplo 12
- Exemplo 13
- Exemplo 14
- Exemplo 15
Se você selecionou a abordagem de expressão regular como sua estratégia de nomenclatura de origem, você pode usar os exemplos de expressão regular como guias para suas próprias expressões usadas nos métodos de resolução automática Data Infrastructure Insights.
Formatando expressões regulares
Ao criar expressões regulares para a 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, os valores das variáveis são criados por declarações parênteses. Se ocorrerem várias frases entre parênteses, as variáveis sã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 existem três conjuntos de parênteses, as variáveis 1, 2 e 3 seriam preenchidas.
Em seguida, você pode usar o seguinte formato para receber a saída em 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 hífens entre as variáveis fornecem um exemplo de texto constante que é inserido na saída formatada.
Exemplos
Exemplo 1 mostrando nomes de zona
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_myComputer1Name-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 que são seguidas por qualquer combinação de dígitos , seguido por um sublinhado, o nome de host alfanumérico (myComputer1Name), um sublinhado ou hífen, as letras maiúsculas HBA e um único dígito (0-9). O nome de host sozinho é 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. Isto corresponde apenas a um "S" no início do nome da zona.
-
Os carateres [0-9] entre parênteses indicam que o seguinte "S" deve ser um dígito entre 0 e 9, inclusive.
-
O sinal indica que a ocorrência das informações nos parênteses 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 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 necessário, os parênteses indicam que o padrão contido dentro será armazenado na variável 1.
-
Os carateres entre colchetes [a-zA-Z0-9] indicam que os carateres correspondentes são todas letras (independentemente do caso) e números.
-
O * (asterisco) que segue os colchetes indica que os carateres entre colchetes ocorrem 0 ou mais vezes.
-
Os carateres 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 esta sequência exata de carateres deve ocorrer no nome da zona.
-
O conjunto final de carateres entre colchetes [0-9] corresponde a um único dígito de 0 a 9, inclusive.
Exemplo 2
Neste exemplo, pule para o primeiro sublinhado "", depois combine e e e tudo depois disso até o segundo "", e então pule tudo depois disso.
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 o VSAN3 fosse o nome do host, seria: [A-zA-Z0-9] ([a-zA-Z0-9]).*
ZONA: A_VSAN3_SR48KENT_A_CX2578_SPA0
-
Nome do anfitrião:* SR48KENT
RegExp: [a-zA-Z0-9]_[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:
-
myComputerName123-HBA1_Symm1_FA3
-
myComputerName123-HBA2_Symm1_FA5
-
myComputerName123-HBA3_Symm1_FA7
A expressão regular que você poderia usar para capturá-los seria:
([a-zA-Z0-9]*)_.* A variável 1 conterá apenas _myComputerName123_ depois de 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 dentro será armazenado na variável 1.
-
Os carateres entre colchetes [a-zA-Z0-9] significam que qualquer letra (independentemente do caso) ou dígito corresponderá.
-
O * (asterisco) que segue os colchetes indica que os carateres 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 cadeia alfanumérica correspondente aos colchetes anteriores.
-
O . (ponto) corresponde a qualquer caractere (um curinga).
-
O * (asterisco) indica que o curinga do período anterior 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 zona 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 capturá-los seria:
(.*?)_.* A variável 1 conterá _MyComputerName_ (no exemplo do nome da primeira zona) ou _myComputerName123_ (no exemplo do nome da segunda zona). Esta expressão regular combinaria, assim, tudo antes do primeiro sublinhado.
A expressão regular pode ser dividida em seus componentes:
-
Os parênteses indicam que o padrão contido dentro será armazenado na variável 1.
-
O .* (asterisco de ponto) corresponde a qualquer caractere, qualquer número de vezes.
-
O * (asterisco) que segue os colchetes indica que os carateres entre colchetes ocorrem 0 ou mais vezes.
-
O personagem ? faz o jogo não-ganancioso. Isso obriga-o a parar de combinar no primeiro sublinhado, em vez do último.
-
Os carateres _.* correspondem ao primeiro sublinhado encontrado e todos os carateres 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 capturá-los seria:
.*?_.*?_([a-zA-Z0-9]*[ABT])_.* Como a convenção de nomenclatura de zona tem mais de um padrão, podemos usar a expressão acima, que corresponderá a todas as instâncias de um nome de host (MyComputerName no exemplo) que termina com um A, um B ou um T, colocando esse nome de host na variável 1.
A expressão regular pode ser dividida em seus componentes:
-
O .* (asterisco de ponto) corresponde a qualquer caractere, qualquer número de vezes.
-
O personagem ? faz o jogo não-ganancioso. Isso obriga-o a parar de combinar no primeiro sublinhado, em vez do último.
-
O caractere sublinhado corresponde ao primeiro sublinhado no nome da zona.
-
Assim, a primeira combinação .*?_ corresponde aos carateres storage1_ no primeiro exemplo de nome de zona.
-
A segunda combinação .*?_ comporta-se como a primeira, mas corresponde a Switch1_ no exemplo do nome da primeira zona.
-
Os parênteses indicam que o padrão contido dentro será armazenado na variável 1.
-
Os carateres entre colchetes [a-zA-Z0-9] significam que qualquer letra (independentemente do caso) ou dígito corresponderá.
-
O * (asterisco) que segue os colchetes indica que os carateres entre colchetes ocorrem 0 ou mais vezes.
-
Os carateres 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) que segue os parênteses indica que a correspondência de carateres [ABT] deve ser seguida de um sublinhado.
-
O .* (asterisco de ponto) corresponde a qualquer caractere, qualquer número de vezes.
O resultado disso faria com que a variável 1 contivesse qualquer cadeia alfanumérica que:
-
foi precedido por algum número de carateres alfanuméricos e dois sublinhados
-
foi seguido por um sublinhado (e, em seguida, qualquer número de carateres alfanuméricos)
-
Teve um caráter final de A, B ou T, antes do terceiro sublinhado.
Exemplo 7
Zona: myComputerName123_HBA1_Symm1_FA1
-
Nome do anfitrião:* myComputerName123
RegExp: ([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
Regexp: (.?)_.
Exemplo 9
Este exemplo encontra tudo após o 1st _ e até o segundo _.
Zone: Z_MyComputerName_StorageName
Nome do host: MyComputerName
RegExp: .?(.?).*?
Exemplo 10
Este exemplo extrai "MyComputerName123" dos exemplos de zona.
Zona: storage1_Switch1_MyComputerName123A_A1_FC1
Storage2_Switch2_MyComputerName123B_A2_FC2
Storage3_Switch3_MyComputerName123T_A3_FC3
-
Nome do anfitrião:* MyComputerName123
RegExp:.?.?([a-zA-Z0-9])[ABT]_.
Exemplo 11
Zona: storage1_Switch1_MyComputerName123A_A1_FC1
-
Nome do anfitrião:* MyComputerName123A
RegExp: .?.?([a-zA-Z0-9]).*?
Exemplo 12
(Circumflex ou caret) dentro de colchetes nega a expressão, por exemplo, [ FF] significa qualquer coisa, exceto F maiúscula ou minúscula, e [ a-z] significa tudo, exceto a minúscula a z, e, no caso acima, qualquer coisa, exceto o _. O comando format adiciona o "-" ao nome do host de saída.
Zona: mhs_apps44_d_A_10a0_0429
-
Nome do host: * mhs-apps44-d
RegExp: ([])([AB]). * Formato em dados de infraestrutura Insights: 1- 2 ([]) ([])([__]). * Formato em 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 realmente existem "" sendo usados na cadeia de carateres, e que esses não são parte da própria expressão.
Alias de armazenamento: hosts E2DOC01C1/E2DOC01N1
Nome do host: E2DOC01N1
RegExp:.?.?(.*?)
Exemplo 14
Este exemplo extrai "PD-RV-W-AD-2" dos exemplos de zona.
ZONE: PD_D-PD-RV-W-AD-2_01
NOME DO HOST: PD-RV-W-AD-2
RegExp: [-
Exemplo 15
A configuração de formato, neste caso, adiciona o "US-BV-" ao nome do host.
ZONA: SRV_USBVM11_F1
NOME DO ANFITRIÃO: US-BV-M11
RegExp: SRV_USBV([A-ZA-Z0-9])_F[12]
Formato: US-BV- 1