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

Si ha seleccionado el enfoque de expresión regular como estrategia de nomenclatura 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 introduciendo valores en un campo denominado FORMAT.

El valor predeterminado es \1, lo que significa que un nombre de zona que coincida 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 sentencias entre paréntesis. Si se producen varias sentencias paréntesis, se hace referencia numéricamente a las variables, de izquierda a derecha. Las variables se pueden utilizar en formato de salida en cualquier orden. El texto constante también se puede insertar en la salida, agregándolo al campo DE FORMATO.

Por ejemplo, es posible que tenga los siguientes nombres de zona para esta convención 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

Y la salida podría tener el siguiente formato:

 [hostname]-[data center]-[device type]
Para ello, debe capturar los campos de nombre de host, centro de datos y tipo de dispositivo en variables y utilizarlos en el resultado. La siguiente expresión regular haría esto:
 .*?_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_.*
Como hay tres conjuntos de paréntesis, las variables \1, \2 y \3 se rellenarían.

A continuación, puede utilizar el siguiente formato para recibir la salida en el formato que prefiera:

 \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 el resultado con formato.

Ejemplos

Ejemplo 1 que muestra los nombres de las zonas

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

  • S0032_myComputer1Name-HBA0

  • S0434_myComputer1Name-HBA1

  • S0432_myComputer1Name-HBA3

La expresión regular que podría utilizar para capturar el nombre de 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 , seguida de un guión bajo, el nombre de host alfanumérico (myComputer1Name), un guión o guión bajo, el HBA de letras mayúsculas y un solo dígito (0-9). El nombre de host solo 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 sólo coincide con una "S" al principio 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 aparición de la información en los corchetes anteriores debe existir 1 o más veces.

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

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

  • Los caracteres entre corchetes [a-za-Z0-9] indican que los caracteres que se comparan son todas letras (independientemente del caso) y números.

  • El * (asterisco) que sigue a los corchetes indica que los caracteres entre corchetes ocurren 0 o más veces.

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

  • Las letras HBA en la expresión regular indican que esta secuencia exacta de caracteres debe producirse 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 subrayado "", luego iguala E y todo después hasta el segundo "", y luego salte todo después de eso.

ZONA: Z_E2FDE S01_E1NETAPP

NOMBRE DE HOST: E2FHDBS01

RegExp: .?(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 usted quisiera que VSAN3 fuera el nombre de host, sería: _([a-za-Z0-9]).*

ZONA: A_VSAN3_SR48KENT_A_CX2578_SPA0

NOMBRE DE HOST: SR48KENT

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

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

Puede crear una expresión regular si tiene algo similar a los siguientes nombres de zona:

  • MyComputerName123-HBA1_Symm1_FA3

  • MyComputerName123-HBA2_Symm1_FA5

  • MyComputerName123-HBA3_Symm1_FA7

La expresión regular que podría utilizar para capturar estos elementos sería:

 ([a-zA-Z0-9]*)_.*
La variable \1 sólo contendrá _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 en se almacenará en la variable \1.

  • Los caracteres entre corchetes [a-za-Z0-9] significan que cualquier letra (independientemente del caso) o dígito coincidirán.

  • El * (asterisco) que sigue a los corchetes indica que los caracteres entre corchetes ocurren 0 o más veces.

  • El carácter _ (subrayado) de la expresión regular significa que el nombre de zona debe tener un guión bajo inmediatamente después de la cadena alfanumérica que coinciden 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 ocurrir 0 o más veces.

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

Ejemplo 5 que muestra los nombres de zona sin un patrón

Puede crear una expresión regular si tiene algo similar a los siguientes nombres de zona:

  • myComputerName_HBA1_Symm1_FA1

  • myComputerName123_HBA1_Symm1_FA1

La expresión regular que podría utilizar para capturar estos elementos sería:

 (.*?)_.*
La variable \1 contendría _myComputerName_ (en el ejemplo del nombre de la primera zona) o _myComputerName123_ (en el ejemplo del nombre de la segunda zona). Esta expresión regular coincidiría con todo antes del primer guión bajo.

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

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

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

  • El * (asterisco) que sigue a los corchetes indica que los caracteres entre corchetes ocurren 0 o más veces.

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

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

Ejemplo 6 que muestra los nombres de los equipos con un patrón

Puede crear una expresión regular si tiene 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ía utilizar para capturar estos elementos sería:

 .*?_.*?_([a-zA-Z0-9]*[ABT])_.*
Debido a que la convención de nomenclatura de zona tiene más de un patrón, podríamos utilizar la expresión anterior, que coincidará con todas las instancias de un nombre de host (myComputerName en el ejemplo) que termina 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 .* (asterisco de punto) coincide con cualquier carácter, cualquier número de veces.

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

  • El carácter de guion bajo coincide con el primer guión bajo del nombre de la zona.

  • Así, la primera combinación .*?_ coincide con los caracteres storage1_ en el ejemplo del nombre de la primera zona.

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

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

  • Los caracteres entre corchetes [a-za-Z0-9] significan que cualquier letra (independientemente del caso) o dígito coincidirán.

  • El * (asterisco) que sigue a los corchetes indica que los caracteres entre corchetes ocurren 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 sigue a los paréntesis indica que se debe realizar un seguimiento de la coincidencia de caracteres [ABT].

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

Por lo tanto, el resultado de esto haría que la variable \1 contenga cualquier cadena alfanumérica que:

  • fue precedido por un número de caracteres alfanuméricos y dos caracteres de subrayado

  • estaba seguido de un guión bajo (y luego de 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: myComputerName123_HBA1_Symm1_FA1

NOMBRE DE HOST: myComputerName123

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

Ejemplo 8

En este ejemplo se encuentra todo antes de la primera _.

Zona: MyComputerName_HBA1_Symm1_FA1

MyComputerName123_HBA1_Symm1_FA1

Nombre de host: MyComputerName

Regexp: (.?)_.

Ejemplo 9

Este ejemplo lo encuentra todo después de la 1st _ y hasta la segunda _.

Zona: Z_MyComputerName_StorageName

Nombre de host: MyComputerName

RegExp: .?(.?).*?

Ejemplo 10

En este ejemplo se extrae "MyComputerName123" de los ejemplos de zona.

  • Zona:* storage1_Switch1_MyComputerName123A_A1_FC1

Storage2_Switch2_MyComputerName123B_A2_FC2

Storage3_Switch3_MyComputerName123T_A3_FC3

NOMBRE DE HOST: MyComputerName123

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

Ejemplo 11

  • Zona:* storage1_Switch1_MyComputerName123A_A1_FC1

NOMBRE DE HOST: MyComputerName123A

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

Ejemplo 12

El # (circumflex o caret) dentro de corchetes niega la expresión, por ejemplo, [ FF] significa cualquier cosa excepto mayúscula o minúscula F, y [ a-z] significa todo excepto la minúscula a a z, y en el caso anterior, cualquier cosa excepto la _. La instrucción format agrega en "-" al nombre del host de salida.

Zona: mhs_apps44_d_A_10a0_0429

Nombre de host: mhs-apps44-d

RegExp: ()_([AB]).*Formato en Información de infraestructura de datos: \1-\2 ([^_])_ ()_([^_]).*Formato en Información de infraestructura de datos: \1-\2-\3

Ejemplo 13

En este ejemplo, el alias de almacenamiento está delimitado por "\" y la expresión debe utilizar "\\" para definir que se está utilizando realmente "\" en la cadena, y que no forman parte de la expresión misma.

Alias de almacenamiento: \hosts\E2DOC01C1\E2DOC01N1

NOMBRE DE HOST: E2DOC01N1

RegExp: \\.?\.?\\(.*?)

Ejemplo 14

En este ejemplo se 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

RegExp: -(.*-\d).*

Ejemplo 15

El ajuste de formato en este caso agrega el "US-BV-" al nombre de host.

ZONA: SRV_USBVM11_F1

NOMBRE DE HOST: US-BV-M11

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

Formato: US-BV-\1