Una expresión regular es un patrón literal compuesto por caracteres ordinarios (como los caracteres A a la Z) y los caracteres especiales (llamados metacharacteres ). Este patrón describe una o más cadenas para que coincidan al buscar un cuerpo de texto. La expresión regular actúa como una plantilla para que coincida con un patrón de caracteres con la cadena buscada.
Aquí hay algunos ejemplos de expresiones regulares que puede encontrar:
| Jscript | VBscript | fósforo |
|---|---|---|
| /^/[/t]*$/ | ^ /[ /t]*$ | Coincidir con una línea en blanco. |
| // d {2}-/d {5}/ | /D {2}-/D {5} | Verifique que un número de identificación consista en un número de 2 dígitos, un guión y un número de 5 dígitos. |
| /<(.*)>.*<//1>/ | <(.*)>.*</// 1> | Haga coincidir una etiqueta HTML. |
La siguiente tabla es una lista completa de metacharacteres y su comportamiento en el contexto de expresiones regulares:
| personaje | describir |
|---|---|
| / | Marque el siguiente personaje como un personaje especial, o un personaje primitivo, o una referencia hacia atrás, o un personaje de escape octal. Por ejemplo, 'n' coincide con el personaje n. '/n' coincide con un personaje nuevo. La secuencia '//' coincide /y /(coincides (. |
| ^ | Coincide con la posición de inicio de la cadena de entrada. Si se establece la propiedad multilínea del objeto regexp , ^ también coincide con la posición después de '/n' o '/r'. |
| $ | Coincide con la posición final de la cadena de entrada. Si se establece la propiedad multilínea del objeto REGEXP , $ también coincide con la posición anterior '/n' o '/r'. |
| * | Coincide con la subexpresión anterior cero o varias veces. Por ejemplo, Zo* puede coincidir con Z y Zoo. * es equivalente a {0,}. |
| + + | Coincide con la subexpresión anterior una o más veces. Por ejemplo, 'Zo+' puede igualar Zo y Zoo, pero no Z. + es equivalente a {1,}. |
| ? | Coincide con la subexpresión anterior cero o una vez. Por ejemplo, ¿(es)? ? |
| { n } | N es un entero no negativo. Haga coincidir las n veces que se determinan. Por ejemplo, 'O {2}' no puede igualar 'o' en Bob, pero puede igualar dos OS en alimentos. |
| { n ,} | N es un entero no negativo. Coincidir al menos n veces. Por ejemplo, 'o {2,}' no se puede coincidir con 'o' en Bob, pero puede igualar todo el sistema operativo en foooood. 'O {1,}' es equivalente a 'O+'. 'O {0,}' es equivalente a 'o*'. |
| { n , m } | Ambos M y N son enteros no negativos, donde n <= m . Coincidir al menos n veces y coincidir con M veces. Liu, o {1,3} coincidirá con los tres primeros sistema operativo en Fooooood. 'O {0,1}' es equivalente a 'O?'. Tenga en cuenta que no puede haber espacios entre comas y dos números. |
| ? | El patrón de coincidencia no es gris cuando el personaje es seguido inmediatamente por cualquier otro carácter de restricción (*, +,?, { N }, { n ,}, { n , m }). El patrón no grisegal coincide con la menor cantidad de cuerdas posible, mientras que el patrón codicioso predeterminado coincide con tantas cuerdas como sea posible. Por ejemplo, para la cadena oooo, 'O+?' |
| . | Coincidir con cualquier personaje solo excepto /n. Para que coincida con cualquier personaje que incluya '/n', use un patrón como '[./n]'. |
| ( patrón ) | Patrón de coincidencia y obtenga este partido. Las coincidencias obtenidas se pueden obtener de la colección de coincidencias generadas, utilizando la colección de submatches en VBScript y utilizando el atributo de $ 0 ... $ 9 en JScript. Para igualar los caracteres de los paréntesis, use '/(' o '/)'. |
| (?: patrón ) | Patrón de coincidencia pero no obtenga el resultado coincidente, es decir, esta es una coincidencia que no se gana y no se almacena para uso futuro. Esto es útil cuando se usa o caracteres (|) para combinar varias partes de un patrón. Por ejemplo, 'Industr (?: Y | ies) es una expresión más simple que' Industry | Industries '. |
| (? = Patrón ) | Reenviar previamente a Check, coincida con la cadena de búsqueda al comienzo de cualquier patrón de coincidencia de cadenas. Esta es una coincidencia que no es Get, es decir, la coincidencia no necesita recuperarse para su uso posterior. Por ejemplo, 'Windows (? = 95 | 98 | NT | 2000)' puede coincidir con Windows en Windows 2000, pero no Windows en Windows 3.1. La verificación previa no consume personajes, es decir, después de que ocurra un partido, la búsqueda del próximo partido comienza inmediatamente después del último partido, en lugar de después de los personajes que contienen la previa verificación. |
| (?! patrón ) | LookAhead negativo coincide con la cadena de búsqueda en cualquier punto donde una cadena no coincida con el patrón . Esta es una coincidencia que no es Get, es decir, la coincidencia no necesita recuperarse para su uso posterior. Por ejemplo, 'Windows (? La verificación previa no consume caracteres, es decir, después de que ocurra un partido, la siguiente búsqueda de partidos comienza inmediatamente después del último partido, en lugar de después de los personajes que contienen la referencia previa |
| x | | Coincidir x o y . Por ejemplo, 'Z | Food' puede coincidir con Z o comida. '(Z | f) ood' coincide con Zood o comida. |
| [ xyz ] | Colección de personajes. Coincidir con cualquier personaje contenido. Por ejemplo, '[ABC]' puede coincidir 'A' en llanura. |
| [^ xyz ] | Una colección de caracteres de valores negativos. Coincidir con cualquier personaje no incluido. Por ejemplo, '[^ABC]' puede coincidir 'P' en llanura. |
| [ AZ ] | Rango de personajes. Haga coincidir cualquier carácter en el rango especificado. Por ejemplo, '[AZ]' puede coincidir con los caracteres alfabéticos en minúsculas en el rango 'A' a 'Z'. |
| [^ az ] | Valor negativo Rango de caracteres. Haga coincidir cualquier caracteres arbitrarios que no estén dentro del rango especificado. Por ejemplo, '[^AZ]' puede coincidir con los caracteres arbitrarios que no estén en el rango 'A' a 'Z'. |
| /b | Haga coincidir un límite de palabra, lo que significa la posición entre la palabra y el espacio. Por ejemplo, 'ER/B' puede coincidir con 'er' en nunca, pero no 'er' en verbo. |
| /B | Coincidir con los límites que no son de palabras. 'ER/B' puede igualar 'er' en verbo, pero no puede igualar 'er' en nunca. |
| /c x | Coincide con los caracteres de control especificados por x . Por ejemplo, /cm coincide con un control de control o el retorno del carro. El valor de X debe ser uno de AZ o AZ. De lo contrario, trate a C como un carácter original 'C'. |
| /d | Coincidir con un carácter numérico. Equivalente a [0-9]. |
| /D | Coincidir con un personaje no numérico. Equivalente a [^0-9]. |
| /F | Haga coincidir un descanso de página. Equivalente a /x0c y /cl. |
| /norte | Coincidir con un personaje de Newline. Equivalente a /x0a y /cj. |
| /R | Coincidir con un personaje de retorno del carro. Equivalente a /x0d y /cm. |
| /s | Haga coincidir con cualquier personaje de espacios en blanco, incluidos espacios, pestañas, pausas de página, etc. Equivalente a [/f/n/r/t/v]. |
| /S | Haga coincidir con cualquier personaje que no sea Whitespace. Equivalente a [^/f/n/r/t/v]. |
| /t | Haga coincidir un personaje de pestaña. Equivalente a /x09 y /ci. |
| /V | Haga coincidir una pestaña vertical. Equivalente a /x0b y /ck. |
| /W | Haga coincidir cualquier carácter de palabra que incluya un bajo. Equivalente a '[A-ZA-Z0-9_]'. |
| /W | Coincidir con los personajes que no son de palabras. Equivalente a '[^a-Za-z0-9_]'. |
| /x n | Match n , donde n es un valor de escape hexadecimal. El valor de escape hexadecimal debe ser la longitud de dos números que se determinan. Por ejemplo, '/x41' coinciden A. '/x041' es equivalente a '/x04' y 1. La codificación ASCII se puede usar en expresiones regulares. . |
| / NUM | Match Num , donde NUM es un entero positivo. Referencia a la coincidencia obtenida. Por ejemplo, '(.)/1' coincide con dos caracteres idénticos consecutivos. |
| / n | Identifica un valor de escape octal o una referencia hacia atrás. Si al menos n obtuvo subexpresiones antes / n , N es una referencia hacia atrás. De lo contrario, si N es un número octal (0-7), N es un valor de escape octal. |
| / nm | Identifica un valor de escape octal o una referencia hacia atrás. Si al menos NM obtiene subexpresiones precedidas por al menos NM antes / NM , NM es una referencia hacia atrás. Si hay al menos n recuperaciones antes / nm , n es una referencia hacia atrás seguida de la m literal. Si no se satisfacen ninguna de las condiciones anteriores, si ambos N y M son números octales (0-7), entonces / nm coincidirá con el valor de escape octal nm . |
| / nml | Si N es un número octal (0-3), y M y L son números octales (0-7), el valor de escape octal NML coincide. |
| /u n | Match n , donde n es un personaje unicode representado por cuatro dígitos hexadecimales. Por ejemplo, /U00A9 coincide con el símbolo de derechos de autor (?). |
Después de construir una expresión regular, puede evaluar como una expresión matemática, es decir, puede evaluar de izquierda a derecha y en un orden prioritario.
La siguiente tabla enumera el orden de prioridad de varios operadores de expresión regulares de la prioridad más alta a la prioridad más baja:
| Operador | describir |
|---|---|
| / | Símbolo de escape |
| (), (? :), (? =), [] | Aparatos ortopédicos y soportes cuadrados |
| *, +,?, {n}, {n,}, {n, m} | Índice |
| ^, $, / anymetacharacter | Posición y orden |
| | | U operar |