Construcción de resumen de expresiones regulares
Construcción
personaje
x personajes x
// personajes de barra de barra de barra
/0n carácter n con valor octal 0 (0 <= n <= 7)
/0nn carácter nn con valor octal 0 (0 <= n <= 7)
/0mnn carácter mnn con valor octal 0 (0 <= m <= 3, 0 <= n <= 7)
/XHH Carácter HH con valor hexadecimal 0x
/uhhhh personaje hhhhh con valor hexadecimal 0x
/T TAB ('/U0009')
/n nuevo carácter de línea (break de línea) ('/u000a')
/R Carácter de retorno de carro ('/U000D')
/f Page Break ('/U000C')
/un símbolo de alarma (campana) ('/u0007')
/E Escape Caracter ('/u001b')
/cx correspondiente a x
Clase de carácter
[ABC] A, B o C (clase simple)
[^ABC] Cualquier personaje excepto A, B o C (negativo)
[A-ZA-Z] A a Z o A a Z, se incluyen letras en ambos extremos (rango)
[AD [MP]] A a D o M a P: [A-DM-P] (unión)
[AZ && [def]] D, E o F (intersección)
[AZ && [^BC]] A a Z, excepto B y C: [AD-Z] (menos)
[AZ && [^mp]] A a Z, no M a P: [A-LQ-Z] (menos)
Clases de caracteres predefinidas
. Cualquier personaje (puede o no coincidir con el carácter final de la línea)
/D Número: [0-9]
/D no número: [^0-9]
/S Whitespace Caracter: [/t/n/x0b/f/r]
/S Caracteres no blancos: [^/s]
/W Word caracteres: [A-Za-Z_0-9]
/W Personajes que no son palabras: [^/W]
Clase de caracteres Posix (US-ASCII solo)
/P {inferior} caracteres del alfabeto en minúsculas: [AZ]
/P {superior} caracteres de letra mayúscula: [AZ]
/P {ASCII} Todos ASCII: [/x00-/x7f]
/P {alfa} caracteres alfa: [/p {inferior}/p {superior}]]
/P {dígito} número decimal: [0-9]
/P {Alnum} caracteres alfanuméricos: [/p {alfa}/p {dígito}]
/P {PUNCT} Puntuación:! "#$%& '()*+,-./:; <=>?@[/]^_` {|} ~
/p {gráfico} caracteres visibles: [/p {alnum}/p {punc}]
/P {print} caracteres imprimibles: [/p {gráfico}/x20]
/p {en blanco} espacio o personaje de tabulación: [ /t]
/P {CNTRL} Caracteres de control: [/x00-/x1f/x7f]
/P {xdigit} Número hexadecimal: [0-9a-fa-f]
/P {Space} Whitespace Caracter: [/t/n/x0b/f/r]
Java.lang.Character Class (tipo de personaje Java simple)
/P {Javalowercase} es equivalente a java.lang.character.isishowercase ()
/P {JavupperCase} es equivalente a java.lang.character.isuppercase ()
/P {javawhitaSpace} es equivalente a java.lang.character.iswhiteSpace ()
/P {javamirrored} es equivalente a java.lang.character.ismirrored ()
Bloques y clases de Unicode
/P {Ingreek} caracteres en un bloque griego (bloque simple)
/P {lu} Letras mayúsculas (categoría simple)
/P {sc} símbolo de moneda
/P {Ingreek} Todos los caracteres, excepto en el bloque griego (negativo)
[/p {l} && [^/p {lu}]] Todas las letras, excepto las letras mayúsculas (menos)
Pareja de límites
^ El comienzo de la línea
El final de la línea $
/B Límites de palabras
/B límite de no palabras
/Un inicio de entrada
/G el final del partido anterior
El final de la entrada /z, solo para el último carácter final (si lo hay)
El final de la entrada /z
Palabra cuantitativa codiciosa
¿INCÓGNITA? X, una o una o una, no
X* x, cero o varias veces
X+ x, una o más
X {n} x, exactamente n veces
X {n,} x, al menos n veces
X {n, m} x, al menos n veces, pero no más que m veces
Palabra cuantitativa reacia
¿¿INCÓGNITA?? X, una o una o una, no
INCÓGNITA*? X, cero o varias veces
X+? X, una o más
X {n}? X, exactamente n veces
X {n,}? X, al menos n veces
X {n, m}? X, al menos n veces, pero no más de M veces
Palabras cuantitativas posesivas
X?+ X, una o una o una, no
X*+ x, cero o varias veces
X ++ x, una o más
X {n}+ x, exactamente n veces
X {n,}+ x, al menos n veces
X {n, m}+ x, al menos n veces, pero no más que m veces
Operador lógico
Xy x talón y
X | yx o y
(X) x, como grupo de captura
Cita de espalda
/n cualquier grupo de captura enésimo coincidente
Cita
/Nada, pero cita los siguientes personajes
/Q Nada, pero cita a todos los caracteres hasta /e
/E nada, pero termina la referencia comenzando con /q
Construcción especial (no capturado)
(?: X) x, como un grupo no captivo
(? Idmsux -IDMSUX) Nada, pero coincidirá con la bandera Idmsux en - apagado
(? Idmsux -IDMSUX: x) x, como idmsux encendido - apagado con la bandera dada
Grupo no capturador (? = x) x, a través de lookhead positivo de ancho cero
(?
(? <= X) x, a través de una apariencia positiva de ancho cero.
(? <! X) x, apariencia negativa a través de un ancho cero
(?> X) x, como un grupo independiente de no capacitación
---------------------------------------------------------------------------------------------------
Barras de retroceso, escapes y referencias
El carácter de barra de inactividad ('/') se usa para hacer referencia a las construcciones de escape, como se define en la tabla anterior, y también para hacer referencia a otros caracteres que se interpretarán como construcciones no recapitadas. Por lo tanto, la expresión // coincide con una sola barra de retroceso, y /{coincide con el soporte izquierdo.
Es incorrecto usar invertidos traseros antes de cualquier caracteres alfabéticos que no representen construcciones de escape; Están reservados para futuras extensiones de lenguajes de expresión regulares. Se puede usar una barra de de fondo antes de un carácter no alfabético, independientemente de si el personaje no es parte de la construcción escapada.
De acuerdo con los requisitos de la especificación del lenguaje Java, las versiones de retroil en las cadenas del código fuente de Java se interpretan como escapes Unicode u otros escapes de carácter. Por lo tanto, se deben usar dos barras de retroceso en la cadena literal para indicar que la expresión regular está protegida y no interpretada por el compilador de código de byto Java. Por ejemplo, cuando se interpreta como una expresión regular, la cadena literal "/b" coincide con un solo carácter de respaldo, y "// b" coincide con el límite de la palabra. La cadena literal "/(Hello/)" es ilegal y causará un error de tiempo de compilación; Para que coincida con la cadena (hola), se debe usar la cadena literal "// (hola //)".
Clase de carácter
Las clases de caracteres pueden aparecer en otras clases de caracteres y pueden contener operadores sindicales (implícitamente) y operadores de intersección (&&). El operador de la Unión representa una clase que contiene al menos todos los personajes en una de sus clases de operandos. El operador de intersección representa una clase que contiene todos los caracteres en sus dos clases de operando al mismo tiempo.
La prioridad de los operadores de la clase de personaje es la siguiente, organizada en orden de la más alta a la más baja:
1 escape literal/x
2 agrupación [...]
3 rango AZ
4 Unión [AE] [IU]
5 intersección [AZ && [aeiou]]
Tenga en cuenta que diferentes conjuntos de metacharacteres se encuentran en realidad dentro de la clase de caracteres, no fuera de la clase de caracteres. Por ejemplo, expresiones regulares. El significado especial se pierde dentro de una clase de caracteres, y la expresión se convierte en el rango que forma metacharacteres.
Carácter final de línea
Un personaje final de la línea es una secuencia de uno o dos caracteres que marca el final de la línea de la secuencia de caracteres de entrada. El siguiente código se reconoce como un carácter final de línea:
NUEVA LÍNEA (LINE NEWLINE) CARÁCTER ('/n'),
El carácter de retorno del carro ("/r/n") seguido del carácter de la nueva línea,
Un personaje de retorno de carro separado ('/r'),
Next Line personaje ('/u0085'),
Delimitador de línea ('/u2028') o
Separador de párrafo ('/U2029).
Si se activa el modo UNIX_LINES, el nuevo carácter de línea es el carácter final de línea reconocido exclusivamente.
Si no se especifica el indicador Dotall, la expresión regular. puede coincidir con cualquier personaje (excepto el final de la línea).
Por defecto, las expresiones regulares ^ y $ ignoran las terminaciones de línea y solo coinciden con el principio y el final de toda la secuencia de entrada, respectivamente. Si se activa el modo multiline, se produce una coincidencia solo después del comienzo de la entrada y el final de la línea (el final de la entrada). Cuando está en modo multiline, $ coincide solo antes de que finalice la línea o al final de la secuencia de entrada.
Grupo y captura
Los grupos de captura se pueden numerar calculando sus soportes abiertos de izquierda a derecha. Por ejemplo, en la expresión ((a) (b (c)))), hay cuatro de estos grupos:
1 ((a) (b (c)))
2 /A
3 (b (c))
4 (c)
Los ceros del grupo siempre representan toda la expresión.
Los grupos de captura se nombran de esta manera porque en el partido, cada subsecuencia de la secuencia de entrada que coincide con esos grupos se guarda. La posterior subsecuencia capturada se puede usar más tarde en la expresión a través de referencias posteriores o se puede obtener de la combate después de completar la operación coincidente.
La entrada de captura asociada con un grupo es siempre la subsecuencia que coincide con el grupo más recientemente. Si el grupo se calcula nuevamente debido a la cuantización, su valor previamente capturado se conservará en la segunda falla de cálculo (si corresponde). Por ejemplo, coincidir la cadena "ABA" con la expresión (A (B)?)+ Establecerá el segundo grupo en "B". Al comienzo de cada partido, se descartan todas las entradas capturadas.
Los grupos que comienzan con (?) Los grupos puros no capturantes que no capturan texto y no cuentan contra los recuentos combinados.
Lo anterior es todo el contenido de la expresión regular (recomendado por el artículo de la gramática) que le presenta el editor. Espero que todos puedan apoyar a Wulin.com más ~