TR1 Regular Expressions

Este tema describe las gramáticas de varios motores de expresiones regulares que TR1 admite.

En este tema

  • Gramática de expresiones regulares

  • resumen de la gramática

  • detalles semánticos

  • La coincidencia y buscar

  • Marcas de formato

Gramática de expresiones regulares

Bb982727.collapse_all(es-es,VS.110).gifElemento

Un elemento puede ser una de las siguientes operaciones:

  • Un carácter normal que coincide con el mismo carácter en la secuencia de destino.

  • un carácter comodín “.” que coincide con cualquier carácter en la secuencia de destino excepto una línea nueva.

  • Una expresión entre corchetes con el formato “[expr]”, que coincide con un carácter o un elemento de intercalación en la secuencia de destino que se encuentra también en el conjunto definido por la expresión expr, o formulario “[^expr]”, que coincide con un carácter o un elemento de intercalación en la secuencia de destino que no está en el conjunto definido por la expresión expr.

    La expresión expr puede contener cualquier combinación de los siguientes aspectos:

    • un carácter individual.Agrega ese carácter el conjunto definido por expr.

    • Un intervalo de caracteres de formato “ch1-ch2”.Agrega caracteres representados por valores del intervalo cerrado [ch1, ch2] el conjunto definido por expr.

    • Una clase de carácter de formato “[:name:]”.Agrega los caracteres en la clase denominada al conjunto definido por expr.

    • Una clase de equivalencia de formato “[=elt=]”.Agrega los elementos que intercalan que son equivalentes a elt el conjunto definido por expr.

    • Un símbolo que intercala con el formato “[.elt.]”.Agrega el elemento elt de intercalación el conjunto definido por expr.

  • Un delimitador.Delimitador “^” coincide con el inicio de la secuencia de destino; delimitador “$” coincide con el final de la secuencia de destino.

Un grupo de captura de formato “( subexpression )”, o “\ ( subexpresión \)” en BRE y grep, que coincide con la secuencia de caracteres de la secuencia de destino que es coincidente por el modelo entre los delimitadores.

  • Un escape de identidad de “\k” del formulario, que coincide con el carácter k en la secuencia de destino.

Ejemplos:

  • “a” coincide con la secuencia “a” de destino pero no coincide con las secuencias “b”, “b”, o “c” de destino.

  • “.” coincide con todas las secuencias “a” de destino, “b”, “b”, y “c”.

  • “[BZ]” coincide con las secuencias “b” y “c” de destino pero no coinciden las secuencias “a” de destino o “b”.

  • “[: inferior:]” coincide con las secuencias “a” de destino, “b”, y “c” pero no coincide con la secuencia “b” de destino.

  • “(a)” coincide con la secuencia “a” de destino y asocia el grupo 1 de captura el subsequence “a”, pero no coincide con las secuencias “b”, “b”, o “c” de destino.

En ECMAScript, BRE, y grep, un elemento también puede ser una referencia posterior de “\dd” del formulario, donde dd representa un valor n decimal que coincide con una secuencia de caracteres de la secuencia de destino que es igual que la secuencia de caracteres que es coincidente con el grupo de capturade Enésimo.Por ejemplo, “(a) \ 1 " coincide con la secuencia “aa” de destino porque a coincidan con las primeras único) coincidencias del grupo de captura la secuencia inicial “a” y \ 1 la secuencia final “a”.

En ECMAScript, un elemento también puede ser una de las siguientes operaciones:

  • Un grupo de la no-captura con el formato “(?: subexpresión )”.Coincide con la secuencia de caracteres de la secuencia de destino que es coincidente por el modelo entre los delimitadores.

  • Una secuencia de escape de caracteres limitada de “\ f” del formulario, “\ n”, “\ r”, “\ t”, o “\ v”.Éstos coinciden con un avance de página, una nueva línea, un retorno de carro, una tabulación horizontal, y una tabulación vertical, respectivamente, en la secuencia de destino.

  • ¿ Un positivo validar con el formato “(? = subexpression )”.Coincide con la secuencia de caracteres de la secuencia de destino que es coincidente por el modelo entre los delimitadores, pero no cambia la coincidencia colocar en la secuencia de destino.

  • ¡ Una negativa validar con el formato “(?!subexpresión )”.Coincide con cualquier secuencia de caracteres de la secuencia de destino que no coincide con el modelo entre los delimitadores, y no cambia la coincidencia colocar en la secuencia de destino.

  • Una secuencia de escape hexadecimal “\ xhh” del formulario.Coincide con un carácter en la secuencia de destino representada por los dos dígitos hexadecimales hh.

  • Una secuencia de escape de unicode “\ uhhhh” del formulario.Coincide con un carácter en la secuencia de destino representada por los cuatro dígitos hexadecimales hhhh.

  • Una secuencia de escape de control “\ ck” del formulario.Coincide con el carácter de control que llama el carácter k.

  • Un límite de palabra validar “\ b” del formulario.Coincide con si la posición actual en la secuencia de destino es inmediatamente después de un límite de palabras.

  • Un límite de palabra negativo validar con el formato “\B”.Coincide con si la posición actual en la secuencia de destino no están inmediatamente después de un límite de palabras.

  • Un escape de carácter de dsw con el formato “\d", "\D", "\s", "\S", "\w", "\W”.proporciona un nombre corto para una clase de carácter.

Ejemplos:

  • “(?: a)” coincide con la secuencia “a” de destino, pero “(?: a) \ 1 " no es válido porque no hay ningún grupo 1. catch.

  • ¿“(? el =a)” coincide con la secuencia “a” de destino.El positivo validar coincide con la secuencia inicial “a” en la secuencia de destino y el final “a” en la expresión regular coincide con la secuencia inicial “a” en la secuencia de destino.

  • ¡“(?! a)” no coincide con la secuencia “a” de destino.

  • “a \ el B.” coincide con la secuencia “a~” de destino, pero no coincide con la secuencia “ab” de destino.

  • “\B”. coincide con la secuencia “ab” de destino, pero no coincide con la secuencia “a~” de destino.

En awk, un elemento también puede ser una de las siguientes operaciones:

  • Una secuencia de escape de caracteres \ \” del formulario “, “\”, “\ b”, “\ f”, “\ n”, “\ r”, “\ t”, o “\ v”.Éstos coinciden con una barra diagonal inversa, alertan, presione la tecla de reserva, FF, nueva línea, retorno de carro, tabulación horizontal, y tabulación vertical, respectivamente, en la secuencia de destino.

  • Una secuencia de escape octal “\ooo” del formulario.Coincide con un carácter en la secuencia de destino cuya representación es el valor representado por los uno, dos, o tres dígitos octales ooo.

Bb982727.collapse_all(es-es,VS.110).gifrepetición

Cualquier elemento que no sea un positivo validar, una negativa validar, o de un delimitador puede ir seguido de un número de repetición.La clase más general de recuento de repetición toma la forma “{min,max}”, o “\ {min,max\}” en BRE y grep.Un elemento que sigue este formulario de recuento de repetición coincide con al menos las apariciones sucesivas de min y no más que las apariciones sucesivas de max de una secuencia que coincide con el elemento.Por ejemplo, “a {2,3}” coincide con la secuencia “aa” de destino y la secuencia “aaa” de destino, pero no la secuencia “a” de destino o la secuencia “aaaa” de destino.

Un recuento de repetición puede realizar una de las siguientes formas:

  • “{min}”, o “\ {min\}” en BRE y grep.equivalente a “{min,min}”.

  • “{min,}”, o “\ {,} \ demin” en BRE y grep.equivalente a “{min, ilimitados}”.

  • "*".equivalente a “{0, ilimitado}”.

Ejemplos:

  • “a {2}” coincide con la secuencia “aa” de destino pero no la secuencia “a” de destino o la secuencia “aaa” de destino.

  • “a {2,}” coincide con la secuencia “aa” de destino, la secuencia “aaa” de destino, etc., pero no coincide con la secuencia “a” de destino.

  • “a*” coincide con "" de la secuencia de destino, la secuencia “a” de destino, la secuencia “aa” de destino, y así sucesivamente.

Para todas las gramáticas excepto BRE y grep, un recuento de repetición puede realizar una de las siguientes formas:

  • “?”.equivalente a “{0,1}”.

  • “+”.equivalente a “{1, ilimitado}”.

Ejemplos:

  • “a”? coincide con "" de la secuencia de destino y la secuencia “a” de destino, pero no la secuencia “aa” de destino.

  • “a+” coincide con la secuencia “a” de destino, la secuencia “aa” de destino, etc., pero no "" de la secuencia de destino.

¿En ECMAScript, todos los formularios de recuento de repetición se pueden seguir el carácter “? ”, que señala una repetición no expansiva.

Bb982727.collapse_all(es-es,VS.110).gifConcatenación

Los elementos de la expresión regular, con o sin recuentos de repetición, se pueden concatenar para formar expresiones regulares más larga.La expresión resultante coincide con una secuencia de destino que es una concatenación de las secuencias que son coincidentes por los elementos individuales.Por ejemplo, “2,3} b a {” coincide con la secuencia “aab” de destino y la secuencia “aaab” de destino, pero no coinciden con la secuencia “ab” de destino o la secuencia “aaaab” de destino.

Bb982727.collapse_all(es-es,VS.110).gifAlternancia

En todas las gramáticas de expresiones regulares excepto BRE y grep, una expresión regular concatenada puede ir seguido del carácter “|” y otra expresión regular concatenada.Cualquier número de expresiones regulares concatenadas se puede combinar de esta manera.La expresión resultante coincide con cualquier secuencia de destino que coincida con uno o más de las expresiones regulares concatenadas.

Cuando más coincide con cualquiera de las expresiones regulares concatenadas la secuencia de destino, ECMAScript elige el primer de expresiones regulares concatenadas que coincide con la siguiente coincidencia (primera coincidencia); las otras gramáticas de expresiones regulares elija el que alcanza la coincidencia más larga.por ejemplo, “ab|CD” coincide con la secuencia “ab” de destino y la secuencia “CD” de destino, pero no coincide con la secuencia “abd” de destino o la secuencia “acd” de destino.

en grep y egrep, un carácter de nueva línea (“\ n ") se puede utilizar para separar alternancias.

Bb982727.collapse_all(es-es,VS.110).gifSubexpresión

En BRE y grep, una subexpresión es una concatenación.En las otras gramáticas de expresión regular, una subexpresión es una alternancia.

resumen de la gramática

La siguiente tabla se resumen las características que están disponibles en las diferentes gramáticas de expresiones regulares proporcionadas por TR1:

Elemento

BRE

ERE

ECMA

grep

egrep

awk

alternancia utilizando “|”

+

+

+

+

alternancia utilizando “\ n”

+

+

delimitación

+

+

+

+

+

+

referencia posterior

+

+

+

expresión entre corchetes

+

+

+

+

+

+

grupo de captura mediante “()”

+

+

+

+

grupo de captura mediante “\ (\)”

+

+

secuencia de escape de control

+

escape de carácter de dsw

+

secuencia de escape de caracteres

+

+

secuencia de escape hexadecimal

+

escape de identidad

+

+

+

+

+

+

negativa validar

+

límite de palabra negativo validar

+

grupo de la no-captura

+

repetición no expansiva

+

secuencia de escape octal

+

carácter normal

+

+

+

+

+

+

positivo validar

+

repetición mediante “{}”

+

+

+

+

repetición mediante “\ \ {}”

+

+

repetición utilizando “*”

+

+

+

+

+

+

repita con “?” y “+”

+

+

+

+

secuencia de escape de unicode

+

carácter comodín

+

+

+

+

+

+

límite de palabra validar

+

detalles semánticos

Bb982727.collapse_all(es-es,VS.110).gifDelimitador

Un delimitador coincide con una posición de la cadena de destino, no un carácter.Un “^” coincide con el principio de la cadena de destino, y “$” buscar el final de la cadena de destino.

Bb982727.collapse_all(es-es,VS.110).gifreferencia posterior

Una referencia posterior es una barra diagonal inversa seguido por un valor n decimal.Coincide con el contenido del grupo de capturade Enésimo.El valor de n no debe ser mayor que el número de grupos de captura que precedan referencia posterior.En BRE y grep, el valor de n viene determinado por el dígito decimal que sigue a la barra diagonal inversa.En ECMAScript, el valor de n viene determinado por todos los dígitos decimales que siguen inmediatamente a la barra diagonal inversa.Por consiguiente, en BRE y grep, el valor de n nunca es mayor que 9, aunque la expresión regular tiene más de nueve grupos de captura.En ECMAScript, el valor de n es ilimitado.

Ejemplos:

  • “((a+) (b+))() \ 3 " c+ coincide con la secuencia “el aabbbcbbb” de destino.“Posterior \ 3 " de referencia coincide con el texto del tercer grupo de captura, es decir, “(b+)”.No coincide con la secuencia “aabbbcbb” de destino.

  • “(a) \ 2 " no es válido.

  • “(b (((((((((a))))))))))\ 10 " tiene significados diferentes en BRE y en ECMAScript.En BRE referencia posterior es “\ 1 ".La referencia posterior coincide con el contenido del primer grupo de captura (es decir, el con el que inicia “(b” y finaliza con el cierre ")” y va antes de que la referencia posterior), y “0 " final coincide con el carácter ordinario “0 ".en ECMAScript, la referencia posterior es “\ 10".Coincide con el décimo grupo de captura, es decir, el más profundo.

Bb982727.collapse_all(es-es,VS.110).gifExpresión entre corchetes

Una expresión entre corchetes define un conjunto de caracteres y los elementos el intercalar.Cuando la expresión entre corchetes comienza con el carácter “^” la coincidencia correctamente si coinciden ningún elemento en el determinado el carácter actual en la secuencia de destino.Si no, la coincidencia correctamente si coincide con cualquiera de los elementos del conjunto el carácter actual en la secuencia de destino.

El conjunto de caracteres puede definirse enumerando a cualquier combinación de caracteres individuales, de intervalos de caracteres, clases de carácter, clases de equivalencia, y intercalar símbolos.

Bb982727.collapse_all(es-es,VS.110).gifGrupo de captura

Marcas de un grupo de captura su contenido como una sola unidad en la gramática y etiquetas de la expresión regular el texto de destino que coincide con su contenido.La etiqueta que está asociado a cada grupo de captura es un número, que se determina el paréntesis de apertura hasta los que marcar los grupos de captura e incluir paréntesis de apertura que marca el grupo actual de captura.En esta implementación, el número máximo de grupos de captura es 31.

Ejemplos:

  • “ab+” coincide con la secuencia “abb” de destino, pero no coincide con la secuencia “abab” de destino.

  • “(ab) +” no coincide con la secuencia “abb” de destino, pero coincide con la secuencia “abab” de destino.

  • “((a+) (b+))(c+)” coincide con la secuencia “aabbbc” de destino y asocia el grupo 1 de captura el subsequence “aabbb”, el grupo 2 catch con el subsequence “aa”, el grupo 3 catch con “bbb”, y el grupo 4 catch con el subsequence “c”.

Bb982727.collapse_all(es-es,VS.110).gifclase de carácter

Una clase de carácter de una expresión entre corchetes agrega todos los caracteres en la clase denominada al juego de caracteres definido por la expresión entre corchetes.Para crear una clase de caracteres, utilice “[: ” seguido del nombre de la clase seguida de “:]”.Internamente, los nombres de las clases de caracteres reconoce llamando a id = traits.lookup_classname.Un carácter ch pertenece a una clase si traits.isctype(ch, id) devuelve true.La plantilla de regex_traits predeterminado admite los nombres de clase en la tabla siguiente.

Nombre de clase

Descripción

“alnum”

minúsculas, letras mayúsculas, y dígitos

“alfa”

minúsculas y letras mayúsculas

“espacio en blanco”

espacio o una tabulación

“control”

los caracteres de la secuencia de escape de caracteres

“dígito”

dígitos

“gráfico”

minúsculas, las letras, dígitos, y puntuación

“inferior”

minúsculas

“imprimir”

minúsculas, las letras, dígitos, puntuación, y espacio

“punct”

puntuación

“espacio”

espacio

“parte superior

caracteres en mayúsculas

“xdigit”

dígitos, “a”, “b”, “c”, “d”, “e”, “f”, “A”, “b”, “C”, “d”, “E”, “f”

"d"

igual que dígito

"s"

igual que espacio

"w"

igual que alnum

Bb982727.collapse_all(es-es,VS.110).gifIntervalo de caracteres

Un intervalo de caracteres en una expresión entre corchetes agrega todos los caracteres del intervalo al juego de caracteres definido por la expresión entre corchetes.Para crear un intervalo de caracteres, el carácter “-” entre el primer y último caracteres del intervalo.Ello incluye en el conjunto todos los caracteres que tienen un valor numérico que sea mayor que o igual al valor numérico del primer carácter, e igual o menor que el valor numérico del último carácter.Observe que este conjunto de caracteres incluidos depende de la representación específica de la plataforma de caracteres.Si el carácter “-” aparece al principio o el final de una expresión entre corchetes, o como el primer o el último carácter de un intervalo de caracteres, se representa.

Ejemplos:

  • “[0-7]” representa el conjunto de caracteres {“0 ", “1 ", “2 ", “3 ", “4 ", “5 ", “6 ", “7 "}.Coincide con las secuencias “0 " de destino, “1 ", etc., pero no “a”.

  • En los sistemas que utilizan la codificación de caracteres ASCII, “[HK]” representa el conjunto de caracteres {“h”, “i”, “j”, “k”}.Coincide con “h” de las secuencias de destino, “i”, etc., pero no “\x8A” o “0 ".

  • En los sistemas que utilizan la codificación de caracteres de EBCDIC, “[HK]” representa el conjunto de caracteres {“h”, “i”, “\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F”, “\ x90”, “j”, “k”} (se codifica la “h” mientras 0x88 y “k” se codifica como 0x92).Coincide con “h” de las secuencias de destino, “i”, “\x8A”, etc., pero no “0 ".

  • “[- 0-24]” representa el conjunto de caracteres {“-”, “0 ", “1 ", “2 ", “4 "}.

  • “[0-2-]” representa el conjunto de caracteres {“0 ", “1 ", “2 ", “-”}.

  • En los sistemas que utilizan la codificación de caracteres ASCII, “[+--]” representa el conjunto de caracteres {“+”, “,”, “-”}.

Sin embargo, cuando se utilizan los intervalos de la configuración regional, caracteres en un intervalo están determinados por las reglas de intercalación para la configuración regional.Los caracteres que intercalan después del primer carácter en la definición del intervalo y antes de que el último carácter en la definición del intervalo están en el conjunto.Los dos caracteres de extremo también se encuentran en el conjunto.

Bb982727.collapse_all(es-es,VS.110).gifintercalar el elemento

Un elemento que intercala es una secuencia comodines de varios que se interpreta como un carácter individual.

Bb982727.collapse_all(es-es,VS.110).gifintercalar símbolo

Un símbolo que intercala en una expresión entre corchetes agrega un elemento que intercala el conjunto definido por la expresión entre corchetes.Para crear un símbolo que intercala, utilice “[”. seguido del elemento que intercala seguido de “.]”.

Bb982727.collapse_all(es-es,VS.110).gifSecuencia de escape de Control

Una secuencia de escape de control es una barra diagonal inversa seguido por “c” de la letra seguido por una de las letras” a la “z” o “A” a la “z”.Coincide con el carácter de control ASCII que llama la letra.Por ejemplo, “\ CI” coincide con “\ x09” de la secuencia de destino, porque <Ctrl-yo> tiene el valor 0x09.

Bb982727.collapse_all(es-es,VS.110).gifEscape de carácter de DSW

Un escape de carácter de dsw es un nombre corto para una clase de caracteres, como se muestra en la tabla siguiente.

secuencia de escape

class denominada equivalente

Establezca como valor predeterminado la Clase denominada

“\ d”

“[[: d:]]”

“[[: dígito:]]”

“\D”

“[^ [: d:]]”

“[^ [: dígito:]]”

“\ s”

“[[: s:]]”

“[[: espacio:]]”

“\S”

“[^ [: s:]]”

“[^ [: espacio:]]”

“\ w”

“[[: w:]]”

“[a-zA-Z0-9_] “*

“\W”

“[^ [: w:]]”

“[^a-zA-Z0-9_] “*

juego de caracteres de *ASCII

Bb982727.collapse_all(es-es,VS.110).gifclase de equivalencia

Una clase de equivalencia en una expresión entre corchetes agrega todos los caracteres y elementos el intercalar que es equivalente al elemento que intercala en la definición de clase de equivalencia el conjunto definido por la expresión entre corchetes.Para crear una clase de equivalencia, utilice “[=” seguido por un elemento que intercala seguido de “=]”.internamente, dos elementos que intercalan elt1 y elt2 son equivalentes si traits.transform_primary(elt1.begin(), elt1.end()) == traits.transform_primary(elt2.begin(), elt2.end()).

Bb982727.collapse_all(es-es,VS.110).gifsecuencia de escape de caracteres

Una secuencia de escape de caracteres consta de las secuencias de escape habituales de caracteres de lenguaje C, “\\", "\a", "\b", "\f", "\n", "\r", "\t", "\v".These tiene los significados usuales, es decir, barra diagonal inversa, alerta, reserva, FF, nueva línea, retorno de carro, tabulación horizontal, y tabulación vertical, respectivamente.En ECMAScript, “\” y “\ b” no está permitido.(“se permite \ \”, pero es un escape de identidad, no una secuencia de escape de caracteres).

Bb982727.collapse_all(es-es,VS.110).gifsecuencia de escape hexadecimal

Una secuencia de escape hexadecimal es una barra diagonal inversa seguida por la letra “x” seguida de dos dígitos hexadecimales (0-9a-fA-F).Coincide con un carácter en la secuencia de destino que tiene el valor especificado por los dos dígitos.Por ejemplo, se utiliza la “codificación de caracteres \x41" matches the target sequence "A" when ASCII.

Bb982727.collapse_all(es-es,VS.110).gifEscape de identidad

Un escape de identidad es una barra diagonal inversa seguida de un carácter individual.Coincide con ese carácter.se requiere cuando el carácter tiene un significado especial; mediante el escape de identidad, se quita el significado especial.Por ejemplo:

  • “a*” coincide con la secuencia “aaa” de destino, pero no coincide con la secuencia “a*” de destino.

  • “a \ *” no coincide con la secuencia “aaa” de destino, pero coincide con la secuencia “a*” de destino.

El conjunto de caracteres que se permiten en un escape de identidad depende de la gramática de expresiones regulares, como se muestra en la tabla siguiente.

Gramática

Caracteres de escape permitidos de identidad

BRE, grep

{ '(', ')', '{', '}', '.', '[', '\', '*', '^', '$' }

ERE, egre

{ '(', ')', '{', '.', '[', '\', '*', '^', '$', '+', '?', '|' }

awk

ERE más {“”, “/”}

ECMAScript

Todos los caracteres excepto los que pueden formar parte de un identificador.Normalmente, esto incluye letras, dígitos, “$”, “_”, y secuencias de escape de unicode.Para obtener más información, vea la especificación del lenguaje ECMAScript.

Bb982727.collapse_all(es-es,VS.110).gifcarácter individual

Un único carácter en una expresión entre corchetes agrega ese carácter en el juego de caracteres definido por la expresión entre corchetes.En cualquier parte de una expresión entre corchetes excepto al principio, un “^” se representa.

Ejemplos:

  • “[ABC]” coincide con las secuencias “a” de destino, “b”, y “c”, pero no la secuencia “d”.

  • “[^abc]” coincide con la secuencia “d” de destino, pero no las secuencias “a” de destino, “b”, o “c”.

  • “[a^bc]” coincide con las secuencias “a” de destino, “b”, “c”, y “^”, pero no la secuencia “d” de destino.

En todas las gramáticas de expresiones regulares excepto ECMAScript, si “]” es el primer carácter que sigue la apertura “[” o es el primer carácter que sigue un “^ inicial”, se representa.

Ejemplos:

  • “[]” no es válido porque no hay ninguna “]” finalizar la expresión entre corchetes.

  • “[] el ABC]” coincide con las secuencias “a” de destino, “b”, “c”, y “]”, pero no la secuencia “d” de destino.

  • “[^] el ABC]” coincide con la secuencia “d” de destino, pero no las secuencias “a” de destino, “b”, “c”, o “]”.

En ECMAScript, “\]” de uso para representar el carácter “]” en una expresión entre corchetes.

Ejemplos:

  • “[]” coincide con la secuencia “a” de destino porque la expresión entre corchetes está vacía.

  • “[\] el ABC]” coincide con las secuencias “a” de destino, “b”, “c”, y “]” pero no la secuencia “d” de destino.

Bb982727.collapse_all(es-es,VS.110).gifnegativa validar

Una negativa validar coincide con todo menos su contenido.No utiliza ningún carácter en la secuencia de destino.¡Por ejemplo, “(?! aa) (a*)” coincide con la secuencia “a” de destino y asocia el grupo 1 de captura el subsequence “a”.No coincide con la secuencia “aa” de destino o la secuencia “aaa” de destino.

Bb982727.collapse_all(es-es,VS.110).gifLímite de palabra negativo validar

Un límite de palabra negativo validar coincide con si la posición actual en la cadena de destino no están inmediatamente después de un límite de palabras.

Bb982727.collapse_all(es-es,VS.110).gifgrupo de la No-captura

Las marcas de un grupo de la no-captura su contenido como una sola unidad en la gramática de expresiones regulares, pero no etiquetan texto de destino.por ejemplo, “(a) (?: el b) * (c) coincide con el texto de destino “abbc” y asocia el grupo 1 de captura el subsequence “a” y el grupo 2 catch con el subsequence “c”.

Bb982727.collapse_all(es-es,VS.110).gifrepetición no expansiva

Una repetición no expansiva utiliza el subsequence más corta de la secuencia de destino que coincida con el modelo.Una repetición expansiva utiliza el mayor.Por ejemplo, “(a+) (el a*b)” coincide con la secuencia “aaab” de destino.Cuando se utiliza una repetición no expansiva, asocia el grupo 1 de captura el subsequence “a” al principio de la secuencia y el grupo 2 de destino catch con el subsequence “aab” al final de la secuencia de destino.Cuando se utiliza una coincidencia expansiva, asocia el grupo 1 de captura el subsequence “aaa” y el grupo 2 catch con el subsequence “b”.

Bb982727.collapse_all(es-es,VS.110).gifsecuencia de escape octal

una secuencia de escape octal es una barra diagonal inversa seguida por un, dos, o tres dígitos octales (0-7).Coincide con un carácter en la secuencia de destino que tiene el valor especificado por los dígitos.Si todos los dígitos son “0 ", la secuencia no es válida.Por ejemplo, se utiliza la “codificación de caracteres \101" matches the target sequence "A" when ASCII.

Bb982727.collapse_all(es-es,VS.110).gifCarácter normal

Un carácter normal es cualquier carácter válido que no tiene un significado especial en la gramática actual.

en ECMAScript, los caracteres siguientes tienen significados especiales:

  • ^ $ \ .* + ?( ) [ ] { } |

en BRE y grep, los caracteres siguientes tienen significados especiales:

  • .[ \

también en BRE y grep, los caracteres siguientes tienen significados especiales cuando se utilizan en un contexto determinado:

  • “*” tiene un significado especial en todos los casos excepto cuando es el primer carácter de una expresión regular o el primer carácter que sigue un “^ inicial” en una expresión regular, o cuando el primer carácter de un grupo de captura o el primer carácter que sigue un “^ inicial” en un grupo de captura.

  • “^” tiene un significado especial cuando el primer carácter de una expresión regular.

  • “$” tiene un significado especial cuando el último carácter de una expresión regular.

en ERE, egrep, y awk, los caracteres siguientes tienen significados especiales:

  • .[ \ ( * + ?{ |

también en ERE, egrep, y awk, los caracteres siguientes tienen significados especiales cuando se utilizan en un contexto determinado.

  • ")” tiene un significado especial cuando coincida con el anterior “(”.

  • “^” tiene un significado especial cuando el primer carácter de una expresión regular.

  • “$” tiene un significado especial cuando el último carácter de una expresión regular.

Un carácter normal coincide con el mismo carácter en la secuencia de destino.De forma predeterminada, esto significa que la coincidencia correctamente si los dos caracteres se representan mediante el mismo valor.en una coincidencia sin distinción entre mayúsculas y minúsculas, dos caracteres ch0 y ch1 coinciden si traits.translate_nocase(ch0) == traits.translate_nocase(ch1).En una coincidencia configuración regional, dos caracteres ch0 y ch1 coinciden si traits.translate(ch0) == traits.translate(ch1).

Bb982727.collapse_all(es-es,VS.110).gifpositivo validar

Un positivo validar coincide con su contenido, pero no utiliza ningún carácter en la secuencia de destino.

Ejemplos:

  • ¿“(? el =aa) (a*)” coincide con la secuencia “aaaa” de destino y asocia el grupo 1 de captura el subsequence “aaaa”.

  • “(aa) (a*)” coincide con la secuencia “aaaa” de destino y asocia el grupo 1 de captura el subsequence “aa” al principio de la secuencia y el grupo 2 de destino catch con el subsequence “aa” al final de la secuencia de destino.

  • ¿“(? =aa) (a)|(a)” coincide con la secuencia “a” de destino y asocia el grupo 1 catch a una secuencia vacía (porque se produjo un error en el positivo assert) y grupo 2 catch con el subsequence “a”.También coincide con la secuencia “aa” de destino y asocia el grupo 1 de captura el subsequence “aa” y el grupo 2 catch con una secuencia vacía.

Bb982727.collapse_all(es-es,VS.110).gifSecuencia de escape Unicode

Una secuencia de escape de unicode es una barra diagonal inversa seguida por la letra “u” seguida de cuatro dígitos hexadecimales (0-9a-fA-F).Coincide con un carácter en la secuencia de destino que tiene el valor especificado por los cuatro dígitos.Por ejemplo, se utiliza la “codificación de caracteres \u0041" matches the target sequence "A" when ASCII.

Bb982727.collapse_all(es-es,VS.110).gifcarácter comodín

Un carácter comodín coincide con cualquier carácter de la expresión de destino excepto una línea nueva.

Bb982727.collapse_all(es-es,VS.110).gifLímite de palabra

Un límite de palabra aparece en las situaciones siguientes:

  • El carácter actual es al principio de la secuencia de destino y es uno de los caracteres A-Za-z0-9_.de word

  • La posición del carácter actual se pasa el final de la secuencia de destino y el último de la secuencia de destino es uno de los caracteres alfabéticos.

  • El carácter actual es uno de los caracteres alfabéticos y el carácter anterior no es.

  • El carácter actual no es uno de los caracteres alfabéticos y el carácter anterior es.

Bb982727.collapse_all(es-es,VS.110).gifLímite de palabra validar

Un límite de palabra validar coincide cuando la posición actual en la cadena de destino es inmediatamente después de un límite de palabras.

La coincidencia y buscar

Para que una expresión regular coincida con una secuencia de destino, la expresión regular completa debe coincidir con la secuencia completa de destino.Por ejemplo, la expresión regular “BCD” coincide con la secuencia “BCD” de destino pero no coincide con la secuencia “abcd” de destino ni la secuencia “bcde” de destino.

Para que una búsqueda de expresiones regulares termina correctamente, debe haber un subsequence en alguna parte de la secuencia de destino que coincide con la expresión regular.La búsqueda encuentra normalmente el subsequence coincidentes de izquierda.

Ejemplos:

  • Una búsqueda de expresiones regulares “BCD” en la secuencia “BCD” de destino tiene éxito y coincide con la secuencia completa.La misma búsqueda en la secuencia “abcd” de destino también tiene éxito y coincide con los tres caracteres pasan.La misma búsqueda en la secuencia “bcde” de destino también tiene éxito y coincide con los tres primeros caracteres.

  • Una búsqueda de expresiones regulares “BCD” en la secuencia “bcdbcd” de destino tiene éxito y coincide con los tres primeros caracteres.

Si hay más de un subsequence correspondiente en alguna ubicación en la secuencia de destino, hay dos maneras de elegir el modelo coincidente.La primera coincidencia elige el subsequence encontrado en primer lugar cuando se detecta una expresión regular.la coincidencia más larga elige el subsequence más largo de los que coinciden en esa ubicación.Si hay más de un subsequence que tiene la longitud máxima, la coincidencia más larga elige el encontrado en primer lugar.Por ejemplo, cuando se utiliza la primera coincidencia, la búsqueda de b de la expresión regular “|a.C.” en la secuencia “abcd” de destino coincide con el subsequence “b” porque coincide con el término izquierdo de alternancia ese subsequence; por consiguiente, la primera coincidencia no intenta el término derecho de alternancia.Cuando se utiliza la coincidencia más larga, la misma búsqueda coincide con “a.C.” porque es “a.C.” mayor que “b”.

Una coincidencia parcial tiene éxito si la coincidencia llega al final de la secuencia de destino sin no, aunque no alcanzó el final de la expresión regular.Por consiguiente, después de que una coincidencia parcial tiene éxito, anexar los caracteres en la secuencia de destino puede causar una coincidencia parcial al error.Sin embargo, después de un error de una coincidencia parcial, anexar los caracteres en la secuencia de destino no puede hacer una coincidencia parcial posterior para funcionar correctamente.Por ejemplo, con una coincidencia parcial, “ab” coincide con la secuencia “a” pero no “CA” de destino.

Marcas de formato

Reglas de formato de ECMAScript

reglas de formato de sed

Texto de sustitución

“$&”

"&"

La secuencia de caracteres que coincide con la expresión regular completa ([match[0].first, match[0].second))

“$$”

“$”

 

“\ y”

"&"

“$ `” (signo de moneda seguido de cita posterior)

 

La secuencia de caracteres que precede al subsequence que coincida con la expresión regular ([match.prefix().first, match.prefix().second))

“$ '” (signo de moneda seguido de cita adelantada)

 

La secuencia de caracteres que sigue al subsequence que coincida con la expresión regular ([match.suffix().first, match.suffix().second))

“$n”

“\ n”

La secuencia de caracteres que coincide con el grupo de captura en la posición n, donde es un número n entre 0 y 9 ([match[n].first, match[n].second)

 

“\ \ n”

“\ n”

“$nn”

 

La secuencia de caracteres que coincide con el grupo de captura en la posición nn, donde es un número nn entre 10 y 99 ([match[nn].first, match[nn].second)

Vea también

Referencia

Información general de la biblioteca estándar de C++