Skip to main content
Data Infrastructure Insights
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Ejemplos de expresiones regulares

Colaboradores netapp-alavoie

Si ha seleccionado el enfoque de expresión regular como su estrategia de denominación de origen, puede utilizar los ejemplos de expresiones regulares como guías para sus propias expresiones utilizadas en los métodos de resolución automática de Data Infrastructure Insights .

Dar formato a expresiones regulares

Al crear expresiones regulares para la resolución automática de Data Infrastructure Insights , puede configurar el formato de salida ingresando valores en un campo llamado FORMAT.

La configuración predeterminada es \1, lo que significa que un nombre de zona que coincide con la expresión regular se reemplaza por el contenido de la primera variable creada por la expresión regular. En una expresión regular, los valores de las variables se crean mediante declaraciones entre paréntesis. Si aparecen varias declaraciones entre paréntesis, las variables se referencian numéricamente, de izquierda a derecha. Las variables se pueden utilizar en el formato de salida en cualquier orden. También se puede insertar texto constante en la salida, agregándolo al campo FORMATO.

Por ejemplo, podría tener los siguientes nombres de zona para esta convención de nombres 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

Es posible que desees que la salida tenga el siguiente formato:

 [hostname]-[data center]-[device type]
Para hacer esto, debe capturar los campos de nombre de host, centro de datos y tipo de dispositivo en variables y usarlos en la salida.  La siguiente expresión regular haría esto:
 .*?_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_.*
Debido a que hay tres conjuntos de paréntesis, se completarán las variables \1, \2 y \3.

Luego puede utilizar el siguiente formato para recibir la salida en su formato preferido:

 \2-\1-\3
Su salida sería la siguiente:
hostname1-Miami-filer
hostname2-Tampa-switch
hostname3-Boston-windows2K
hostname4-Raleigh-solaris

Los guiones entre las variables proporcionan un ejemplo de texto constante que se inserta en la salida formateada.

Ejemplos

Ejemplo 1 que muestra los nombres de las zonas

En este ejemplo, utiliza la expresión regular para extraer un nombre de host del nombre de zona. Podrías crear una expresión regular si tienes algo similar a los siguientes nombres de zona:

  • S0032_nombreDeMiComputadora1-HBA0

  • S0434_nombreDeMiComputadora1-HBA1

  • S0432_nombreDeMiComputadora1-HBA3

La expresión regular que podrías usar para capturar el nombre del host sería:

 S[0-9]+_([a-zA-Z0-9]*)[_-]HBA[0-9]
El resultado es una coincidencia de todas las zonas que comienzan con S seguidas de cualquier combinación de dígitos, seguido de un guion bajo, el nombre de host alfanumérico (myComputer1Name), un guion bajo o guion, las letras mayúsculas HBA y un solo dígito (0-9).  El nombre del host únicamente se almacena en la variable *\1*.

La expresión regular se puede dividir en sus componentes:

  • "S" representa el nombre de la zona y comienza la expresión. Esto coincide solo con una "S" al comienzo del nombre de la zona.

  • Los caracteres [0-9] entre paréntesis indican que lo que sigue a "S" debe ser un dígito entre 0 y 9, inclusive.

  • El signo + indica que la ocurrencia de la información en los paréntesis anteriores debe existir 1 o más veces.

  • El _ (guión bajo) significa que los dígitos después de S deben ser seguidos inmediatamente solo por un carácter de guion bajo en el nombre de la zona. En este ejemplo, la convención de nombres de zona utiliza el guión bajo para separar el nombre de la zona del nombre del host.

  • Después del guión bajo requerido, los paréntesis indican que el patrón contenido en él se almacenará en la variable \1.

  • Los caracteres entre corchetes [a-zA-Z0-9] indican que los caracteres que se buscan son todos letras (sin importar mayúsculas y minúsculas) y números.

  • El * (asterisco) que aparece después de los corchetes indica que los caracteres entre corchetes aparecen 0 o más veces.

  • Los caracteres entre corchetes [_-] (guión bajo y guion) indican que el patrón alfanumérico debe ir seguido de un guion bajo o un guion.

  • Las letras HBA en la expresión regular indican que esta secuencia exacta de caracteres debe aparecer en el nombre de la zona.

  • El conjunto final de caracteres entre corchetes [0-9] coincide con un solo dígito del 0 al 9, inclusive.

Ejemplo 2

En este ejemplo, salte hasta el primer guion bajo "", luego haga coincidir E y todo lo que sigue hasta el segundo "", y luego saltee todo lo que sigue.

Zona: Z_E2FHDBS01_E1NETAPP

Nombre de host: E2FHDBS01

Expresión regular: .?(E.?).*?

Ejemplo 3

Los paréntesis "()" alrededor de la última sección de la expresión regular (abajo) identifican qué parte es el nombre de host. Si quisiera que VSAN3 fuera el nombre del host, sería: _([a-zA-Z0-9]).*

Zona: A_VSAN3_SR48KENT_A_CX2578_SPA0

Nombre de host: SR48KENT

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

Ejemplo 4 que muestra un patrón de nombres más complicado

Podrías crear una expresión regular si tienes algo similar a los siguientes nombres de zona:

  • NombreDeMiComputadora123-HBA1_Symm1_FA3

  • NombreDeMiComputadora123-HBA2_Symm1_FA5

  • miNombreEquipo123-HBA3_Symm1_FA7

La expresión regular que podrías usar para capturar esto sería:

 ([a-zA-Z0-9]*)_.*
La variable \1 contendría solo _myComputerName123_ después de ser evaluada por esta expresión.

La expresión regular se puede dividir en sus componentes:

  • Los paréntesis indican que el patrón contenido se almacenará en la variable \1.

  • Los caracteres entre corchetes [a-zA-Z0-9] significan que cualquier letra (sin importar mayúsculas y minúsculas) o dígito coincidirá.

  • El * (asterisco) que aparece después de los corchetes indica que los caracteres entre corchetes aparecen 0 o más veces.

  • El carácter _ (guión bajo) en la expresión regular significa que el nombre de la zona debe tener un guion bajo inmediatamente después de la cadena alfanumérica que coincide con los corchetes anteriores.

  • El . (punto) coincide con cualquier carácter (un comodín).

  • El * (asterisco) indica que el comodín del período anterior puede aparecer 0 o más veces.

    En otras palabras, la combinación .* indica cualquier carácter, cualquier número de veces.

Ejemplo 5 que muestra nombres de zonas sin un patrón

Podrías crear una expresión regular si tienes algo similar a los siguientes nombres de zona:

  • myComputerName_HBA1_Symm1_FA1

  • myComputerName123_HBA1_Symm1_FA1

La expresión regular que podrías usar para capturar esto sería:

 (.*?)_.*
La variable \1 contendría _myComputerName_ (en el primer ejemplo de nombre de zona) o _myComputerName123_ (en el segundo ejemplo de nombre de zona).  De esta forma, esta expresión regular coincidiría con todo lo que esté antes del primer guion bajo.

La expresión regular se puede dividir en sus componentes:

  • Los paréntesis indican que el patrón contenido se almacenará en la variable \1.

  • El .* (punto asterisco) coincide con cualquier carácter, cualquier número de veces.

  • El * (asterisco) que aparece después de los corchetes indica que los caracteres entre corchetes aparecen 0 o más veces.

  • El carácter ? hace que el partido no sea codicioso. Esto lo obliga a dejar de coincidir en el primer guión bajo, en lugar del último.

  • Los caracteres _.* coinciden con el primer guión bajo encontrado y todos los caracteres que le siguen.

Ejemplo 6 que muestra nombres de computadoras con un patrón

Podrías crear una expresión regular si tienes algo similar a los siguientes nombres de zona:

  • Storage1_Switch1_myComputerName123A_A1_FC1

  • Storage2_Switch2_myComputerName123B_A2_FC2

  • Storage3_Switch3_myComputerName123T_A3_FC3

La expresión regular que podrías usar para capturar esto sería:

 .*?_.*?_([a-zA-Z0-9]*[ABT])_.*
Debido a que la convención de nombres de zona tiene más bien un patrón, podríamos usar la expresión anterior, que coincidirá con todas las instancias de un nombre de host (myComputerName en el ejemplo) que termine con una A, una B o una T, colocando ese nombre de host en la variable \1.

La expresión regular se puede dividir en sus componentes:

  • El .* (punto asterisco) coincide con cualquier carácter, cualquier número de veces.

  • El carácter ? hace que el partido no sea codicioso. Esto lo obliga a dejar de coincidir en el primer guión bajo, en lugar del último.

  • El carácter de subrayado coincide con el primer subrayado en el nombre de la zona.

  • Por lo tanto, la primera combinación .*?_ coincide con los caracteres Storage1_ en el primer ejemplo de nombre de zona.

  • La segunda combinación .*?_ se comporta como la primera, pero coincide con Switch1_ en el primer ejemplo de nombre de zona.

  • Los paréntesis indican que el patrón contenido se almacenará en la variable \1.

  • Los caracteres entre corchetes [a-zA-Z0-9] significan que cualquier letra (sin importar mayúsculas y minúsculas) o dígito coincidirá.

  • El * (asterisco) que aparece después de los corchetes indica que los caracteres entre corchetes aparecen 0 o más veces.

  • Los caracteres entre corchetes en la expresión regular [ABT] coinciden con un solo carácter en el nombre de la zona, que debe ser A, B o T.

  • El _ (guión bajo) que aparece después del paréntesis indica que la coincidencia del carácter [ABT] debe ir seguida de un guion bajo.

  • El .* (punto asterisco) coincide con cualquier carácter, cualquier número de veces.

El resultado de esto haría que la variable \1 contenga cualquier cadena alfanumérica que:

  • Fue precedido por una serie de caracteres alfanuméricos y dos guiones bajos.

  • fue seguido por un guión bajo (y luego cualquier número de caracteres alfanuméricos)

  • tenía un carácter final de A, B o T, antes del tercer guión bajo.

Ejemplo 7

Zona: miNombreDeComputadora123_HBA1_Symm1_FA1

Nombre de host: miNombreDeComputadora123

Expresión regular: ([a-zA-Z0-9]+)_.*

Ejemplo 8

Este ejemplo encuentra todo antes del primer _.

Zona: NombreMiComputadora_HBA1_Symm1_FA1

MyComputerName123_HBA1_Symm1_FA1

Nombre de host: MiNombreDeComputadora

Expresión regular: (.?)_.

Ejemplo 9

Este ejemplo encuentra todo después del 1.er _ y hasta el segundo _.

Zona: Z_NombreDeMiComputadora_NombreDeAlmacenamiento

Nombre de host: NombreDeMiComputadora

Expresión regular: .?(.?).*?

Ejemplo 10

Este ejemplo extrae "MyComputerName123" de los ejemplos de zona.

Zona: Almacenamiento1_Switch1_NombreDeMiEquipo123A_A1_FC1

Storage2_Switch2_MyComputerName123B_A2_FC2

Storage3_Switch3_MyComputerName123T_A3_FC3

Nombre de host: NombreDeMiComputadora123

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

Ejemplo 11

Zona: Almacenamiento1_Switch1_NombreDeMiEquipo123A_A1_FC1

Nombre de host: NombreDeMiComputadora123A

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

Ejemplo 12

El ^ (circunflejo o acento circunflejo) dentro de corchetes niega la expresión, por ejemplo, [^Ff] significa cualquier cosa excepto F mayúscula o minúscula, y [^az] significa todo excepto las letras minúsculas a a z, y en el caso anterior, cualquier cosa excepto el _. La declaración de formato agrega "-" al nombre del host de salida.

Zona: mhs_apps44_d_A_10a0_0429

Nombre de host: mhs-apps44-d

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

Ejemplo 13

En este ejemplo, el alias de almacenamiento está delimitado por "\" y la expresión debe usar "\\" para definir que en realidad se utilizan "\" en la cadena y que estos no son parte de la expresión en sí.

Alias de almacenamiento: \Hosts\E2DOC01C1\E2DOC01N1

Nombre de host: E2DOC01N1

Expresión regular: \\.?\\.?\\(.*?)

Ejemplo 14

Este ejemplo extrae "PD-RV-W-AD-2" de los ejemplos de zona.

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

Nombre de host: PD-RV-W-AD-2

Expresión regular: -(.*-\d).*

Ejemplo 15

La configuración de formato en este caso agrega "US-BV-" al nombre de host.

Zona: SRV_USBVM11_F1

Nombre de host: US-BV-M11

Expresión regular: SRV_USBV([A-Za-z0-9]+)_F[12]

Formato: US-BV-\1