Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Expresión regular
Referencia de bolsillo
Machine Translated by Google
Machine Translated by Google
SEGUNDA EDICION
Expresión regular
Referencia de bolsillo
Tony Stubblebine
Copyright © 2007, 2003 Tony Stubblebine. Reservados todos los derechos. Partes de este libro
se basan en Mastering Regular Expressions, de Jeffrey EF Friedl, Copyright © 2006, 2002, 1997
O'Reilly Media, Inc.
Impreso en Canadá.
Publicado por O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
Historial de impresión:
Muchas de las designaciones utilizadas por los fabricantes y vendedores para distinguir sus
productos se reclaman como marcas comerciales. Donde esas designaciones aparecen en este
libro, y O'Reilly Media, Inc. tenía conocimiento de un reclamo de marca registrada, las
designaciones se han impreso en mayúsculas o iniciales en mayúsculas.
Java™ es una marca comercial de Sun Microsystems, Inc. Microsoft Internet Explorer y .NET son
marcas comerciales registradas de Microsoft Corporation. SpiderMan es una marca registrada
de Marvel Enterprises, Inc.
Si bien se han tomado todas las precauciones en la preparación de este libro, el editor y el autor
no asumen ninguna responsabilidad por errores u omisiones, o por daños que resulten del uso de
la información aquí contenida.
ISBN10: 0596514271
ISBN13: 9780596514273
[T]
Machine Translated by Google
Contenido
Soporte Unicode 13
Recetas 14
Perl 5.8 16
Metacaracteres admitidos 17
Ejemplos de 23
compatibilidad 24
Java (java.util.regex) 26
Metacaracteres admitidos 26
de compatibilidad 35
con Unicode 36
Otros recursos 38
v
Machine Translated by Google
.NET y C# 38
Metacaracteres compatibles 38
Soporte Unicode 47
Ejemplos 47
Otros recursos 49
PHP 50
Metacaracteres compatibles 50
Ejemplos 56
Otros recursos 58
Pitón 58
Metacaracteres compatibles 58
Soporte Unicode 64
Otros recursos 66
RUBÍ 66
Metacaracteres compatibles 67
Soporte Unicode 75
Ejemplos 75
JavaScript 77
Metacaracteres compatibles 77
Ejemplos 82
Otros recursos 83
vi | Contenido
Machine Translated by Google
PCRE 83
Metacaracteres compatibles 84
API PCRE 89
Soporte Unicode 92
Ejemplos 92
Otros recursos 96
Metacaracteres compatibles 96
Regla de reescritura 99
Ejemplos 102
vi Redactor 103
Ejemplos 108
Índice 115
Contenidos | viii
Machine Translated by Google
Machine Translated by Google
La segunda edición de este libro agrega secciones sobre el servidor web Ruby
y Apache, expresiones regulares comunes y también actualiza los lenguajes
existentes.
Las implementaciones cubiertas en este libro son Perl, Java™, .NET y C#,
Ruby, Python, PCRE, PHP, servidor web Apache, editor vi , JavaScript y
herramientas de shell.
1
Machine Translated by Google
Itálico
Se utiliza para enfatizar, términos nuevos, nombres de programas y
URL
Ancho constante
Se utiliza para texto que debe reemplazarse con valores proporcionados por
el usuario
Agradecimientos Mastering
(NFA). Los DFA son más rápidos, pero carecen de muchas de las
funciones de un NFA, como la captura, la búsqueda y los cuantificadores
no egoístas. En el mundo NFA, hay dos tipos: tradicional y POSIX.
Los motores
DFA Los DFA comparan cada carácter de la cadena de entrada con
la expresión regular y realizan un seguimiento de todas las
coincidencias en curso. Dado que cada carácter se examina como
máximo una vez, el motor DFA es el más rápido. Una regla adicional
para recordar con los DFA es que la metasecuencia de alternancia
es codiciosa. Cuando coincide más de una opción en una alternancia
(foo|foobar) , se selecciona la más larga. Por lo tanto, la regla No. 1
se puede modificar para que diga "gana la coincidencia más larga a
la izquierda". (Ver MRE 155–156.)
Representaciones de caracteres
Taquigrafías de caracteres
La mayoría de las implementaciones tienen abreviaturas específicas
para los caracteres de alerta, retroceso, escape, salto de página, nueva
línea, retorno de carro, tabulación horizontal y tabulación vertical . Por
ejemplo, \n suele ser una abreviatura del carácter de nueva línea, que
suele ser LF (012 octal), pero a veces puede ser CR (015 octal), según
el sistema operativo. De manera confusa, muchas implementaciones
usan \b para indicar tanto el retroceso como el límite de la palabra
(posición entre un carácter de "palabra" y un carácter que no es una
palabra).
Para estas implementaciones, \b significa retroceso en una clase de
carácter (un conjunto de posibles caracteres para hacer coincidir en
la cadena) y límite de palabras en otros lugares.
Clase Significado
Letras.
Alfa
Propiedad Significado
\p{L} Letras.
\p{Cs} sustitutos
\pm} Marcas destinadas a combinarse con caracteres básicos, como los acentos.
\p{Mc} Modificación de personajes que ocupan su propio espacio. Los ejemplos incluyen
"signos vocálicos".
\p{Yo} Marcas que encierran otros caracteres, como círculos, cuadrados y rombos.
\páginas} Puntuación.
Propiedad Significado
\PD} Símbolos.
\p{Sc} Divisa.
Los anclajes y las "afirmaciones de ancho cero" coinciden con las posiciones en
la cadena de entrada. (Ver MRE 128–134.)
Inicio de línea/cadena: ^, \A
Coincide con el principio del texto que se busca. En modo multilínea, ^
coincide después de cualquier salto de línea. Algunas implementaciones
admiten \A, que coincide solo al principio del texto.
Comienzo de la coincidencia:
anterior. A menudo, este lugar se restablece al comienzo de una cadena en una coincidencia
fallida.
coincidir (búsqueda atrás) o no habría terminado de coincidir (búsqueda negativa atrás). Por
ejemplo, foo(?=bar) coincide con foo en foobar, pero no con comida. Las implementaciones a
menudo limitan las construcciones de búsqueda posterior a subpatrones con una longitud
predeterminada.
Los modificadores de modo cambian la forma en que el motor de expresiones regulares interpreta
el comportamiento de ^ y $ para que coincidan con las nuevas líneas dentro de la cadena de
entrada.
Cambia el comportamiento de . (punto) para hacer coincidir todos los caracteres, incluidas las
Trate las letras que difieren solo en mayúsculas y minúsculas como idénticas.
Comentarios: (?#...) y # En el
modo de espacio libre, # indica que el resto de la línea es un comentario.
Cuando se admita, el intervalo de comentarios (?#...) se puede incrustar
en cualquier lugar de una expresión regular, independientemente del
modo. Por ejemplo, .{0,80}(?#El límite del campo es de 80 caracteres)
le permite tomar notas sobre por qué escribió .{0,80}.
Alternancia: ...|...
Permite probar varias subexpresiones. La baja precedencia de la
alternancia a veces hace que las subexpresiones sean más largas de lo
previsto, así que use paréntesis para agrupar específicamente lo que
desea alternar. Por lo tanto, \b(foo|bar)\b coincide con las palabras foo o
bar.
Compatibilidad con
Cada expresión se presenta aquí con las cadenas objetivo con las que
coincide y las cadenas objetivo con las que no coincide, para que pueda
tener una idea de los ajustes que puede necesitar hacer para
sus propios casos de uso.
/patrón/modo
s/patrón/reemplazo/modo
Recetas
s/^\s+// s/
\s+$//
/^\d{1,6}$/
No coincidencias: 10,000
/^#([afAF09]){3}(([afAF09]){3})?$/
/^\d{3}\d{2}\d{4}$/
Partidos: 078051120
/^\d{5}(\d{4})?$/
Partidos: 949413232, 10024
No partidos: 949413232
moneda estadounidense
/^\$\(d{1,3}(\,\d{3})*|\d+)(\.\d{2})?$/
Partidos: $20, $15,000.01
/^\d\d\/\d\d\/\d\d\d\d \d\d:\d\d:\d\d$/
/^.*\//
Coincidencias: /usr/local/bin/apachectl No
coincidencias: C:\\System\foo.exe
No coincidencias: 127.1
Dirección MAC
/^([09afAF]{2}:){5}[09afAF]{2}$/
Partidos: 01:23:45:67:89:ab
Correo electrónico
/^[09azAZ]([.\w]*[09azAZ_+])*@([09azAZ][\w]* [0 9azAZ]
\.)+[azAZ]{2,9}$/
URL HTTP
/(https?):\/\/([09azAZ][\w]*[09azAZ]\.)+ [azAZ]
{2,9 }) (:\d{1,4})?
([\w\/#~:.?+=&%@~]*)/
Coincidencias: https://example.com, http://foo.com:8080/bar.html No
Perl 5.8
Perl proporciona un amplio conjunto de operadores de expresiones
regulares, construcciones y características, y se agregan más en cada
nueva versión. Perl utiliza un motor de coincidencia NFA tradicional. Para
obtener una explicación de las reglas detrás de un motor NFA, consulte
"Introducción a expresiones regulares y coincidencia de patrones".
Esta referencia cubre la versión 5.8 de Perl. Se introducirán varias
características nuevas en Perl 5.10; estos se tratan en la Tabla 8. Las
funciones Unicode se introdujeron en 5.6, pero no se estabilizaron hasta
5.8. La mayoría de las demás funciones funcionan en las versiones 5.004
y posteriores.
Secuencia Significado
\a Alerta (campana).
Secuencia Significado
Clase Significado
[^...] Un solo carácter que no aparece en la lista y que no está contenido dentro de un rango
de la lista.
[:clase:] Clase de caracteres de estilo POSIX válida solo dentro de una clase de caracteres
regex.
. Cualquier carácter excepto nueva línea (a menos que el modo de una sola línea, /s).
\p{accesorio} Carácter contenido por una propiedad, secuencia de comandos o bloque Unicode determinado.
Perl 5.8 | 17
Machine Translated by Google
Secuencia Significado
Fin de la cadena de búsqueda o el punto anterior a una nueva línea que finaliza la cadena o,
ps
\Z Fin de cadena, o el punto anterior a una nueva línea que finaliza una cadena, en cualquier
modo de coincidencia.
\b Límite de palabras.
\B Nopalabralímite.
Previsión positiva.
(?=...)
(?!...) Previsión negativa.
modificador Significado
(?modo) Active los modos enumerados (uno o más de xsmi) para el resto de la subexpresión.
(?modo) Desactive los modos enumerados (uno o más de xsmi) para el resto de la subexpresión.
(?modo:...) Active los modos enumerados (uno o más de xsmi) entre paréntesis.
(?modo:...) Desactive los modos enumerados (uno o más de xsmi) entre paréntesis.
modificador Significado
Secuencia Significado
? Partido 1 o 0 veces.
{norte,}? Haga coincidir al menos n veces, pero la menor cantidad de veces posible.
{x, y}? Haga coincidir al menos x veces, y no más de y veces, pero la menor cantidad de veces
posible.
Perl 5.8 | 19
Machine Translated by Google
Secuencia Significado
(?(COND)...| ...) Coincide con el patrón ifthenelse, donde COND es un número entero que se
refiere a una referencia inversa o una aserción de búsqueda.
modificador Significado
% Referencia hash a una matriz de todas las capturas de un nombre dado, ${foo}
[0].
(*ACEPTAR) Obligue al motor a aceptar la coincidencia, incluso si hay más patrones para verificar.
(*CIRUELA PASA) Hacer que el partido falle desde la posición inicial actual.
(*Omita el nombre) Rechazar todas las coincidencias hasta el punto en que se ejecutó la MARCA
nombrada.
modificador Significado
qr/PATRÓN/ismxo
Cita y compila PATTERN como una expresión regular. El valor devuelto se puede utilizar en una sustitución o
coincidencia de patrón posterior. Esto ahorra tiempo si la expresión regular se va a interpolar repetidamente. Los
Perl 5.8 | 21
Machine Translated by Google
m// (coincidencia)
m/PATRÓN/imsxocg
s/// (Sustitución)
s/PATRÓN/REEMPLAZO/egimosx
dividir
Devuelve una lista de subcadenas que rodean las coincidencias de PATRÓN en EXPR.
Si se incluye LIMIT , la lista contiene subcadenas que rodean las primeras
coincidencias de LIMIT . El argumento del patrón es un operador de coincidencia,
así que use m si desea delimitadores alternativos (p. ej., dividir m{PATRÓN}). La
coincidencia permite los mismos modificadores que m{}. La Tabla 9 enumera las
variables posteriores al partido.
Variable Significado
ps Texto antes del partido. Hace que todas las expresiones regulares sean más lentas.
ps Texto del partido. Hace que todas las expresiones regulares sean más lentas. Igual que
$` Texto después del partido. Hace que todas las expresiones regulares sean más lentas.
Compatibilidad con
Perl admite las propiedades Unicode estándar (consulte la Tabla 3), así
como las propiedades compuestas específicas de Perl (consulte la Tabla 10).
Los scripts y las propiedades pueden tener un prefijo Is , pero no lo
requieren. Los bloques requieren un prefijo In solo si el nombre del bloque
entra en conflicto con el nombre de un script.
Perl 5.8 | 23
Machine Translated by Google
Propiedad Equivalente
esASCII [\x00\x7f]
esDigit
esGraph
Es bajo
esimprimir \P{C}
espuntual \p{P}
esXDigit
Ejemplos
Ejemplo 1. Coincidencia simple
"
) }{<a href="$1">$1</a>}igox;
Otros recursos
• Programación Perl, por Larry Wall et al. (O'Reilly), es la referencia estándar
de Perl.
Perl 5.8 | 25
Machine Translated by Google
Java (java.util.regex)
Java 1.4 introdujo expresiones regulares con Java de Sun. paquete util.regex .
Aunque hay paquetes de la competencia disponibles para versiones
anteriores de Java, el de Sun es ahora el estándar. El paquete de Sun utiliza
un motor de coincidencia NFA tradicional.
Para obtener una explicación de las reglas detrás de un motor NFA tradicional,
consulte "Introducción a expresiones regulares y coincidencia de patrones".
Esta sección cubre las expresiones regulares en Java 1.5 y 1.6.
Secuencia Significado
\a Alerta (campana).
\0octal Carácter especificado por un código octal de uno, dos o tres dígitos.
Clase Significado
[^...] Un solo carácter que no está en la lista y que no está contenido dentro de
un rango de la lista.
\d Dígito, [09].
\p{accesorio} Carácter contenido por una clase de carácter POSIX dada, una
propiedad Unicode o un bloque Unicode.
Secuencia Significado
^
Comienzo de cadena, o el punto después de cualquier salto de línea
si está en modo MULTILINE .
\b Límite de palabras.
\B Nopalabralímite.
Java (java.util.regex) | 27
Machine Translated by Google
Secuencia Significado
Patrón.MULTILINE metro
^ y $coincidencia junto a los terminadores
de línea incrustados.
subexpresión.
en modo /x .
Secuencia Significado
? Partido 1 o 0 veces.
{norte,}? Haga coincidir al menos n veces, pero la menor cantidad de veces posible.
{x, y}? Haga coincidir al menos x veces, no más de y veces y la menor cantidad de
veces posible.
Java (java.util.regex) | 29
Machine Translated by Google
Secuencia Significado
java.lang.String
Descripción
Métodos
coincidencias booleanas (String regex)
Devuelve verdadero si la expresión regular coincide con toda la cadena.
java.util.regex.Patrón
Descripción
Métodos
Compilación de patrón estático (String regex)
Construya un objeto Patrón a partir de expresiones
banderas int()
Devuelve los modificadores de modo del patrón .
Patrón de cuerdas( )
Devuelve la expresión regular utilizada para crear este Patrón. Cita de cadena
Java (java.util.regex) | 31
Machine Translated by Google
java.util.regex.Matcher
Descripción
Métodos
pretender( )
Índice del primer carácter después del final del partido.
grupo de cadenas( )
Texto coincidente con este patrón.
grupoCuenta( )
Número de grupos de captura en Pattern. booleano tiene
límites de anclaje ()
Devuelve true si este Matcher usa límites de anclaje para que los operadores de
anclaje coincidan en los límites de la región, no solo al principio y al final de la
cadena de destino. booleano tiene límites
transparentes ()
True si este Matcher usa límites transparentes para que los operadores de
búsqueda puedan ver fuera de los límites de búsqueda actuales. El valor
predeterminado es falso.
booleano hitEnd()
True si la última coincidencia intenta inspeccionar más allá del final de la entrada.
En los escáneres, esto es una indicación de que más entrada puede haber
resultado en una coincidencia más larga.
booleano mirando( )
True si el patrón coincide con el principio de la entrada. coincidencias booleanas
()
Devuelve verdadero si Patrón coincide con la cadena de entrada completa.
patrón patrón ( )
Objeto de patrón de retorno utilizado por este Matcher.
booleano requireEnd()
Devuelve verdadero si el éxito de la última coincidencia se basó en el final de la entrada. En
los escáneres, esto es una indicación de que más entradas pueden haber causado una
coincidencia fallida.
inicio int()
Índice del primer carácter coincidente.
MatchResult toMatchResult( )
Devuelve un objeto MatchResult para la coincidencia más reciente.
Cadena a Cadena()
Devuelve una representación de cadena del comparador para la depuración.
Java (java.util.regex) | 33
Machine Translated by Google
Comparador useAnchorBounds(booleano b)
Si es verdadero, configure Matcher para usar límites de anclaje para que los
operadores de anclaje coincidan al principio y al final de los límites de búsqueda
actuales, en lugar del principio y el final de la cadena de búsqueda. El valor
predeterminado es verdadero.
Comparador useTransparentBounds(booleano b)
Si es verdadero, configure Matcher para usar límites transparentes para que los
operadores de búsqueda puedan ver fuera de los límites de búsqueda actuales.
El valor predeterminado es falso.
java.util.regex.PatternSyntaxException
Descripción
Métodos
PatternSyntaxException(String desc, String regex, int index)
Construya una instancia de esta clase.
Cadena getDescripción( )
Devuelve la descripción del error.
int obtenerIndice( )
Índice de error de retorno.
Cadena getMessage( )
Devuelve un mensaje de error de varias líneas que contiene la descripción
del error, el índice, el patrón de expresión regular y la indicación de la posición
del error dentro del patrón.
Cadena obtenerPatrón()
Devuelve el patrón de expresión regular que generó la excepción.
java.lang.CharSequence
Descripción
Define una interfaz para acceso de solo lectura, de modo que se puedan
aplicar patrones de expresiones regulares a una secuencia de caracteres.
Métodos
char charAt( índice int)
Devuelve el carácter en el índice de posición basado en cero .
longitud int()
Devuelve el número de caracteres en la secuencia.
CharSequence subsecuencia ( inicio int, final int )
Devuelve una subsecuencia, incluido el índice inicial y excluyendo el
índice final .
Cadena a Cadena()
Devuelve una representación de cadena de la secuencia.
Soporte Unicode
Este paquete admite Unicode 4.0, aunque \w, \W, \d, \D, \s
y \S solo admiten ASCII. Puede usar las propiedades de
código Uni equivalentes \p{L}, \P{L}, \p{Nd}, \P{Nd} , \p{Z} y \P{Z}.
Las secuencias de límites de palabras, \b y \B, entienden Unicode.
Para conocer las propiedades y los bloques de Unicode admitidos, consulte la Tabla 2.
Este paquete admite solo los nombres de propiedad breves, como \p{Lu},
y no \p{Lowercase_Letter}. Los nombres de bloque requieren el prefijo In
y admiten solo la forma del nombre sin espacios ni guiones bajos, por
ejemplo, \p{InGreekExtended}, no \p{In_ Greek_Extended} o \p{In Greek
Extended}.
Ejemplos
Ejemplo 5. Coincidencia simple
importar java.util.regex.*;
Java (java.util.regex) | 35
Machine Translated by Google
if (dailyBugle.matches(regex))
{ System.out.println("Coincidencia: " + dailyBugle); } } }
Patrón.compile("^(\\d\\d)[/](\\d\\d)[/](\\d\\d(?:\\d\ \d) ps
Matcher m = p.matcher(fecha);
if (m.find( )) { String
mes = m.grupo(1); Cadena dia
= m.grupo(2); Cadena año =
m.group(3);
System.out.printf("Encontrado %s%s%s\n", año, mes, día); } } }
"
+ # recurso y dos puntos\n"
+ "[\\w/\\#~:.?+=&%@!\\] +? # uno o más válidos\n"
"
+ # caracteres\n" #
"
+ pero tome la menor cantidad\n"
"
+ # posible\n"
+ ")\n" + "(?
= + "[.:?\ # anticipación\n"
\] * # para posibles punc\n" + "(?: [^\\w/\\#~:.?+=& %@!\\] # carácter no
válido\n" + "| $ ) # o final de cadena\n" + ")";
Patrón p = Patrón.compile(regex,
Patrón.CASE_INSENSITIVE + Patrón.COMENTARIOS);
Matcher m = p.matcher(texto); String
result = m.replaceAll("<a href=\"$1\">$1</a>"); System.out.println(resultado); }
Java (java.util.regex) | 37
Machine Translated by Google
Otros recursos
• Mastering Regular Expressions, Third Edition, de Jeffrey EF Friedl (O'Reilly),
cubre los detalles de las expresiones regulares de Java en las páginas 365–
403.
.NET y C#
.NET Framework de Microsoft proporciona un conjunto consistente y poderoso
de clases de expresiones regulares para todas las implementaciones de .NET.
Las siguientes secciones enumeran la sintaxis de expresiones regulares de .NET,
las clases principales de .NET y ejemplos de C#.
.NET de Microsoft utiliza un motor de coincidencia NFA tradicional. Para obtener
una explicación de las reglas detrás de este motor, consulte "Introducción a
expresiones regulares y coincidencia de patrones".
Metacaracteres compatibles
.NET es compatible con los metacaracteres y las metasecuencias enumerados
en la Tabla 16 a la Tabla 21. Para obtener definiciones ampliadas de cada
metacarácter, consulte "Metacaracteres, modos y construcciones Regex".
Secuencia Significado
Secuencia Significado
Clase Significado
[^...] Un solo carácter que no aparece en la lista y que no está contenido dentro de
un rango de la lista.
.NET y C# | 39
Machine Translated by Google
Secuencia Significado
^
Comienzo de cadena, o el punto después de cualquier salto de línea
si está en modo MULTILINE .
\Z Fin de cadena, pero antes de cualquier terminador de línea final, en todos los
modos de coincidencia.
\B Nopalabralímite.
indefinida e impredecible.
IgnoreCase o Multiline.
comentario en modo /x .
Secuencia Significado
\norte En una expresión regular, haga coincidir lo que coincidió con la enésima
subcoincidencia anterior.
*
Coincide 0 o más veces.
? Partido 1 o 0 veces.
.NET y C# | 41
Machine Translated by Google
Secuencia Significado
{norte,}? Haga coincidir al menos n veces, pero la menor cantidad de veces posible.
{x, y}? Haga coincidir al menos x veces, y no más de y veces, pero la menor cantidad
de veces posible.
Secuencia Significado
expresión regular
Métodos
Regex público ( patrón de cadena)
Regex público ( patrón de cadena, opciones RegexOptions )
Devuelve un objeto de expresión regular basado en un patrón y con los
modificadores de modo opcionales, opciones. public
.NET y C# | 43
Machine Translated by Google
Devuelve una matriz de cadenas rotas alrededor de las coincidencias del patrón de
expresiones regulares. Si se especifica, no se devuelven más que cadenas de recuento .
Puede especificar una posición inicial en la entrada con startat.
.NET y C# | 45
Machine Translated by Google
Fósforo
Propiedades
public bool Success Indica
si la coincidencia fue exitosa.
Métodos
Grupo
Propiedades
Compatibilidad con
Ejemplos
Ejemplo 9. Coincidencia simple
class SimpleMatchTest
.NET y C# | 47
Machine Translated by Google
}}
Partido m = r.Partido(fecha);
if (m.Éxito) { string
mes = m.Grupos[1].Valor; cadena día =
m.Grupos[2].Valor; cadena año =
m.Grupos[3].Valor; } } }
clase PruebaSustituciónSimple {
resultado de cadena
= Regex.Replace (texto, expresión regular, reemplazo, RegexOptions.
Ignorar caso); } }
static Main ( )
.NET y C# | 49
Machine Translated by Google
Otros recursos
PHP
Esta referencia cubre el soporte de expresiones regulares estilo Perl de
PHP 4.4.3 y 5.1.4 contenido dentro de las rutinas preg . Ambos se
basan en la biblioteca PCRE 6.6. Las rutinas preg utilizan un motor de
emparejamiento NFA tradicional. Para obtener una explicación de las
reglas detrás de un motor NFA, consulte "Introducción a expresiones
regulares y coincidencia de patrones".
Secuencia Significado
Secuencia Significado
Clase Significado
[:clase:] Clase de caracteres de estilo POSIX (válida solo dentro de una clase de caracteres
regex).
. Cualquier carácter excepto nueva línea (a menos que el modo de una sola línea, /s).
Secuencia Significado
^
Comienzo de cadena, o el punto después de cualquier nueva línea si está en modo de
coincidencia multilínea, /m.
ps Fin de la cadena de búsqueda, o el punto antes de una línea nueva que finaliza la
cadena, o antes de cualquier línea nueva si está en el modo de coincidencia de varias líneas, /m.
PHP | 51
Machine Translated by Google
Secuencia Significado
\Z Fin de cadena, o el punto anterior a una nueva línea que finaliza una cadena, en cualquier
modo de coincidencia.
\B Nopalabralímite.
Modos Significado
(?modo) Active los modos enumerados (uno o más de imsxU) para el resto de la subexpresión.
(?modo) Desactive los modos enumerados (uno o más de imsxU) para el resto de la
subexpresión.
Modos Significado
Secuencia Significado
(? Agrupación atómica.
? Partido 1 o 0 veces.
{norte,}? {x, y}? Haga coincidir al menos x veces, no más de y veces y la menor cantidad
de veces posible.
PHP | 53
Machine Translated by Google
Secuencia Significado
(?(condición)...|...) Coincide con el patrón ifthenelse. La condición puede ser el número de un grupo de
captura, o una construcción de búsqueda anticipada o posterior.
PHP | 55
Machine Translated by Google
Ejemplos
Ejemplo 13. Coincidencia simple
if (preg_match($p,$date,$matches) { $mes
= $matches[1]; $day =
$matches[2]; $year =
$matches[3];
}
$patrón = "{<br>}i";
PHP | 57
Machine Translated by Google
Otros recursos
• Documentación en línea de PHP en http://www.php.net/pcre. •
Mastering Regular Expressions, Third Edition, de Jeffrey EF Friedl
(O'Reilly), cubre los detalles de las expresiones regulares de PHP en
las páginas 439–481.
Pitón
Python proporciona una rica sintaxis de expresiones regulares similar a
Perl en el módulo re . El módulo re utiliza un motor de coincidencia NFA
tradicional. Para obtener una explicación de las reglas detrás de un motor
NFA, consulte "Introducción a expresiones regulares y coincidencia de patrones".
Metacaracteres compatibles
El módulo re es compatible con los metacaracteres y las metasecuencias
que se enumeran en la Tabla 27 a la Tabla 31. Para obtener definiciones
ampliadas de cada metacarácter, consulte "Metacaracteres, modos y
construcciones Regex".
Secuencia Significado
Secuencia Significado
Clase Significado
. Cualquier carácter, excepto una nueva línea (a menos que esté en modo DOTALL ).
Secuencia Significado
Fin de la cadena de búsqueda, o el punto antes de una línea nueva que finaliza
ps
\Z Fin de cadena, o el punto anterior a una nueva línea que finaliza una
\b Límite de palabras.
\B Nopalabralímite.
Pitón | 59
Machine Translated by Google
Secuencia Significado
Secuencia Significado
Secuencia Significado
? Partido 1 o 0 veces.
{norte}
Coincidir exactamente n veces.
{x, y}? Haga coincidir al menos x veces, no más de y veces y la menor cantidad de
veces posible.
Pitón | 61
Machine Translated by Google
banderas])
Devuelve un objeto de expresión regular con los modificadores de modo
opcionales,
indicadores. coincidencia (patrón, cadena [, banderas])
Busque el patrón en la posición inicial de la cadena y devuelva un objeto de
coincidencia o Ninguno si no hay coincidencia.
findall(patrón, cadena)
Devuelve coincidencias de patrón en cadena. Si el patrón tiene grupos de captura,
devuelve una lista de subcoincidencias o una lista de tuplas de subcoincidencias.
finditer(patrón, cadena)
Devuelve un iterador sobre las coincidencias del patrón en la cadena. Para cada
coincidencia, el iterador devuelve un objeto de
error de excepción
La excepción generada si se produce un error durante la compilación o la
coincidencia. Esto es común si una cadena pasada a una función no es una
expresión regular válida.
RegExp
patrón
Devuelve la cadena de patrón utilizada cuando se compiló el objeto.
match(cadena [, pos [, endpos]])
search(cadena [, pos [, endpos]])
split(cadena [, maxsplit=0]) sub(repl,
string [, count=0]) subn(repl, cadena
[, cuenta=0]) findall(cadena)
Igual que las funciones del módulo re , excepto que el patrón está
implícito. pos y endpos dan índices de cadena de inicio y final para la
coincidencia.
Los objetos de coincidencia son creados por las funciones de coincidencia y búsqueda .
posición
endpos
Valor de pos o endpos pasado para buscar o hacer coincidir.
re
El objeto de expresión regular cuya coincidencia o búsqueda devolvió este
objeto.
cadena
Cadena pasada para hacer coincidir o
buscar. grupo ([g1, g2, ...])
Devuelve una o más subcoincidencias de los grupos de captura.
Los grupos pueden ser números correspondientes a grupos de captura
o cadenas correspondientes a grupos de captura con nombre. Grupo 0
pitón | 63
Machine Translated by Google
Devuelve una tupla de los resultados de todos los grupos de captura. Los grupos
que no coincidieron tienen el valor Ninguno o predeterminado.
grupodict([predeterminado])
Devuelve un diccionario de grupos de captura con nombre, con clave por
nombre de grupo. Los grupos que no coincidieron tienen el valor Ninguno o
predeterminado. inicio([grupo])
Índice del inicio de la subcadena coincidente por grupo (o inicio de toda la
cadena coincidente si no hay
grupo). final([grupo])
Índice del final de la subcadena coincidente por grupo (o final de toda la cadena
coincidente si no hay grupo).
lapso([grupo])
Devuelve una tupla de índices iniciales y finales del grupo (o cadena coincidente
si no hay grupo). expandir ([plantilla])
nombre.
lastgroup Nombre del último grupo de captura coincidente, o Ninguno si no hay
coincidencia o si el grupo no tiene nombre.
últimoíndice
Índice del último grupo de captura coincidente, o Ninguno si no hay coincidencia.
Compatibilidad con
Ejemplos
Ejemplo 17. Coincidencia simple
fecha = '30/12/1969'
si coincide:
mes = partido.grupo(1) #12 día =
partido.grupo(2) #30 año =
partido.grupo(3) #1969
patrón = r''' \b #
comienza en el límite de la palabra ( # captura a \1 (https?|
telnet|gopher|file|wais|ftp) :
Otros recursos
• Documentación en línea de Python en http://www.python.org/
doc/current/lib/modulere.html.
RUBÍ
Ruby proporciona un subconjunto de expresiones regulares de estilo Perl
integradas en las clases Regexp y String . Ruby utiliza un motor de
coincidencia NFA tradicional. Para obtener una explicación de las reglas
detrás de un motor NFA tradicional, consulte "Introducción a expresiones
regulares y coincidencia de patrones".
Secuencia Significado
Clase Significado
[^...] Un solo carácter que no aparece en la lista y que no está contenido dentro de un rango
de la lista.
RUBÍ | 67
Machine Translated by Google
Clase Significado
\w Carácter de palabra.
\d Dígito.
\D sin dígitos
Secuencia Significado
^
Comienzo de cadena, o el punto después de cualquier salto de línea.
\Z Fin de cadena, pero antes de cualquier terminador de línea final, en todos los modos de
coincidencia.
\B Nopalabralímite.
metro El punto (.) coincide con cualquier carácter, incluido un terminador de línea.
Tenga en cuenta que esto es diferente de la mayoría de las implementaciones de expresiones regulares.
cultural actual.
o Evaluar #{...} sustituciones solo una vez. El valor predeterminado es evaluar cada vez que
(?imnsimns) Active o desactive las banderas de coincidencia para el resto del patrón.
Secuencia Significado
(Rubí 1.9)
\norte En una expresión regular, haga coincidir lo que coincidió con la enésima
subcoincidencia anterior.
(Rubí 1.9)
? Partido 1 o 0 veces.
RUBÍ | 69
Machine Translated by Google
Secuencia Significado
{norte,}? {x, y}? Haga coincidir al menos x veces, no más de y veces y la menor cantidad de veces posible.
Secuencia Significado
Cadena
Descripción
Métodos de instancia
RUBÍ | 71
Machine Translated by Google
expresión regular
Descripción
Contiene una expresión regular que se utiliza para comparar un patrón con
cadenas.
Métodos de clase
Métodos de instancia
RUBÍ | 73
Machine Translated by Google
MatchData
Descripción
Métodos de instancia
Compatibilidad con
Ejemplos
Ejemplo 21. Coincidencia simple
fin
fecha = '30/12/1969'
RUBÍ | 75
Machine Translated by Google
if md = regexp.match(fecha)
mes = md[1] #12 día
= md[2] #30 año =
md[3] #1969 fin
[\w/#~:.?+=&%@!\] +?
# tomar lo menos posible
) (? # anticipación
= [.:?\] * # para un posible punc
(?: [^\w/#~:.?+=&%@!\] | # carácter inválido # o
$) fin de cadena
)', Regexp::EXTENDIDO)
JavaScript
JavaScript introdujo el soporte de expresiones regulares similar a Perl
con la versión 1.2. Esta referencia cubre las versiones 1.5 a 1.7 según
lo definido por el estándar ECMA. Las implementaciones compatibles
incluyen Microsoft Internet Explorer 5.5+ y Firefox 1.0++. JavaScript
utiliza un motor de coincidencia NFA tradicional. Para obtener una
explicación de las reglas detrás de este motor NFA, consulte
"Introducción a expresiones regulares y coincidencia de patrones".
Secuencia Significado
JavaScript | 77
Machine Translated by Google
Clase Significado
[^...] Un solo carácter que no aparece en la lista y que no está contenido dentro de un rango
de la lista.
Secuencia Significado
ps Fin de la cadena de búsqueda, o el punto antes de una línea nueva que finaliza la
cadena, o antes de cualquier línea nueva si está en el modo de coincidencia de varias líneas, /m.
\b Límite de palabras.
\B Nopalabralímite.
modificador Significado
metro
^ y $ coinciden junto a los terminadores de línea incrustados.
i
Coincidencia que no distingue entre mayúsculas y minúsculas.
Secuencia Significado
\norte En una expresión regular, contiene texto que coincide con el grupo de captura
n.
? Partido 1 o 0 veces.
{norte}? {x, y}? Haga coincidir al menos x veces, no más de y veces y la menor cantidad de veces
posible.
JavaScript | 79
Machine Translated by Google
Cadena
Métodos
buscar (patrón)
Haga coincidir el patrón con la cadena, devolviendo la posición del carácter
del comienzo de la primera subcadena coincidente o 1.
RegExp
Constructor
new RegExp(patrón, atributos) /patrón/
atributos Los objetos
RegExp se pueden crear con el constructor RegExp( ) o con una sintaxis
literal especial /.../. El patrón de parámetro es un patrón de expresión
regular requerido, y el
Los atributos de parámetro son una cadena opcional que contiene cualquiera
de los modificadores de modo g, i o m. El patrón de parámetro también puede
ser un objeto RegExp , pero luego se requiere el parámetro de atributos .
Propiedades de
instancia
booleanas globales que indican si RegExp tiene el atributo g .
ignoreCase
Booleano que indica si RegExp tiene el atributo i .
últimoÍndice
La posición del personaje de la última coincidencia.
multilínea
Booleano que indica si RegExp tiene el atributo m .
fuente
El patrón de texto utilizado para crear este objeto.
Métodos
ejecutivo (texto)
Busque texto y devuelva una matriz de cadenas si la búsqueda tiene éxito, y
nula si falla. El elemento 0 de la matriz contiene la subcadena que coincide
con la expresión regular completa. Los elementos adicionales corresponden
a grupos de captura.
Si se establece el indicador global (g) , lastIndex se establece en la posición
del carácter después de la coincidencia, o cero si no hubo coincidencia.
Las sucesivas llamadas exec( ) o test( ) comenzarán en lastIndex. Tenga en
cuenta que lastIndex es una propiedad de la expresión regular, no de la
cadena que se busca. Debe restablecer lastIndex manualmente si está
utilizando un objeto RegExp en modo global para buscar varias cadenas.
prueba (texto)
JavaScript | 81
Machine Translated by Google
Ejemplos
Ejemplo 25. Coincidencia simple
if (dailybugle.search(regex)) { //hacer
algo}
//Convertir <br> a <br /> para cumplir con XHTML String text
= "Hello world. <br>";
+ "(https?|telnet|gopher|archivo|wais|ftp) :" //
recurso y dos puntos
+ "[\\w/\\#~:.?+=&%@!\\]+?" // uno o más caracteres válidos //
toma lo menos posible
+ ")"
+ "(?=" // anticipación + "[.:?\\]*" // para posibles
puntos + "(?:[^\\w/\\#~:.?+= &%@!\\]"// carácter inválido +
"|$)" // o fin de cadena + ")";
Otros recursos
• JavaScript: The Definitive Guide, de David Flanagan (O'Reilly), es una
referencia para todo JavaScript, incluidas las expresiones regulares.
PCRE
La biblioteca de expresiones regulares compatibles con Perl (PCRE) es una
biblioteca de expresiones regulares en lenguaje C, de código abierto y
gratuita para cualquier uso, desarrollada por Philip Hazel. PCRE se ha
incorporado a PHP, el servidor web Apache 2.0, KDE, Exim, Analog y
Postfix. Los usuarios de esos programas pueden usar los metacaracteres
admitidos que se enumeran en la Tabla 43 a la Tabla 47.
Esta referencia cubre la versión 7.0 de PCRE, cuyo objetivo es emular las
expresiones regulares al estilo de Perl 5.8, pero también incluye
características del próximo Perl 5.10.
PCRE se puede compilar con o sin soporte para cadenas UTF8, y con o
sin soporte para propiedades de caracteres Unicode. Las siguientes listas y
tablas asumen que ambas características están disponibles.
PCR | 83
Machine Translated by Google
Secuencia Significado
Clase Significado
[^...] Un solo carácter que no aparece en la lista y que no está contenido dentro de
un rango de la lista.
[:clase:] Clase de caracteres de estilo POSIX válida solo dentro de una clase de
caracteres regex.
. Cualquier carácter, excepto nueva línea (a menos que el modo de una sola
línea, PCRE_DOTALL).
Clase Significado
Secuencia Significado
ps
Fin de la cadena de búsqueda, o el punto antes de una línea nueva que finaliza
\Z Fin de cadena, o el punto anterior a una nueva línea que finaliza una
\GRAMO
Comienzo de la búsqueda actual.
\B Nopalabralímite.
PCR | 85
Machine Translated by Google
Carácter de modo
PCRE_MULTILINE metro
^ y $coincidencia junto a \n
incrustado.
PCRE_EXTENDIDO X
Ignore los espacios en blanco y permita
comentarios (#) en el patrón.
Carácter de modo
Modificador/secuencia Perl equivalente Significado
subexpresión.
\MI
Finaliza un lapso que comienza con \Q.
en el modo PCRE_EXTENDED .
Secuencia Significado
PCR | 87
Machine Translated by Google
Secuencia Significado
? Partido 1 o 0 veces.
de veces posible.
veces posible.
veces posible.
de veces posible.
Secuencia Significado
API PCRE
PCR | 89
Machine Translated by Google
int pcre_fullinfo(const pcre *código, const pcre_extra *extra, int qué, void *dónde)
vacío *(*pcre_malloc)(tamaño_t)
El punto de entrada que utiliza PCRE para las llamadas malloc() .
vacío (*pcre_free)(vacío *)
Punto de entrada que utiliza PCRE para llamadas pcre_free( ) .
int (*pcre_callout)(pcre_callout_block *)
Se puede configurar en una función de llamada que se llamará durante los partidos.
PCR | 91
Machine Translated by Google
Ejemplos El
#include <stdio.h>
#include <cadena.h>
#include <pcre.h>
*regex; const
char *error;
compensación de
error interno; int capturevector[TAMAÑO DEL
VECTOR DE CAPTURA]; int rc;
/* Manejar errores */ if
(regex = = NULL)
/* Try Match */ rc =
pcre_exec( /*
expresión regular compilada */ regex, /* resultados
NULL,
opcionales de pcre_study */
texto, /* cadena de entrada */
(int)strlen(text), /* longitud de la cadena de entrada */ 0, 0, vector de
/* posición inicial en la cadena de entrada */
/* Opciones OR */
captura, /* contiene los resultados de los grupos de captura */
TAMAÑO DEL VECTOR DE CAPTURA);
{ case
devuelve 1; }
devuelve 0; }
PCR | 93
Machine Translated by Google
*regex; const
char *error;
compensación de
error interno; int capturevector[TAMAÑO DEL
VECTOR DE CAPTURA]; int rc, yo;
/* Compilar Regex */ re =
pcre_compile( patrón,
rc = pcre_exec( /*
expresión regular compilada */ regex, /*
NULL,
resultados opcionales de pcre_study */
texto, /* cadena de entrada */
(int)strlen(text), /* longitud de la cadena de entrada */ 0, 0,
/* posición inicial en la cadena de entrada */
/* Opciones OR */
vector de captura, /* contiene los resultados de los grupos de captura */
TAMAÑO DEL VECTOR DE CAPTURA);
{ switch(rc)
devuelve
1; }
/* Coincidencia exitosa */
printf("Coincidencia exitosa\n");
CAPTUREVECTORSIZE/3;
printf("ovector solo tiene espacio para %d subcadenas capturadas\n", rc 1);
devolver
0; }
PCR | 95
Machine Translated by Google
Otros recursos
Secuencia Significado
\x{hexadecimal}
Carácter especificado por cualquier código hexadecimal.
Clase Significado
[^...] Un solo carácter que no aparece en la lista y que no está contenido dentro de
un rango de la lista.
[:clase:] Clase de caracteres de estilo POSIX (válida solo dentro de una clase
de caracteres regex).
. Cualquier carácter, excepto nueva línea (a menos que el modo de una sola
línea, /s).
Secuencia Significado
^
Comienzo de cadena.
\B Nopalabralímite.
Modos Significado
(?modo) Active los modos enumerados (uno o más de imsxU) para el resto de la
subexpresión.
(?modo) Desactive los modos enumerados (uno o más de imsxU) para el resto de
la subexpresión.
Secuencia Significado
{norte,}? Haga coincidir al menos n veces, pero la menor cantidad de veces posible.
(?(condición)...|...) Coincide con el patrón ifthenelse. La condición puede ser el número de un grupo de captura,
o una construcción de búsqueda anticipada o posterior.
Regla de reescritura
Modos Cadena de
útil[:ruta]]
norte
Siguiente regla; vuelva a aplicar las reglas de reescritura a la URL
recién reescrita.
una regla.
interna.
PAG
Detenga el procesamiento de reescritura y procese el resultado como
Modos Significado
Modos Significado
HTTP_USER_AGENT DIRECCIÓN_REMOTA
HTTP_REENVIADO USUARIO_REMOTO
HTTP_HOST REMOTE_IDENT
HTTP_PROXY_CONEXIÓN SOLICITUD_MÉTODO
SERVIDOR_ADDR HORA_AÑO
SERVIDOR_SOFTWARE HORA_HORA
Especiales TIME_MIN
API_VERSION TIME_WDAY
LA SOLICITUD TIEMPO
SOLICITUD_URI
SOLICITUD_NOMBRE DE ARCHIVO
IS_SUBREQ
HTTPS
Directivas coincidentes
Varias otras directivas de Apache utilizan expresiones
regulares. Los siguientes son los más comunes.
Patrón AliasMatch rutaarchivo|rutadirectorio Asignar direcciones
URL a ubicaciones del sistema de archivos. Utilice las variables de subcoincidencia
$1...$n para acceder a las subcoincidencias en la ruta del archivo resultante.
Ejemplos
vi Redactor
Secuencia Significado
solo video
\b Retroceso, \x08.
vi Redactor | 103
Machine Translated by Google
Secuencia Significado
Clase Significado
[^...] Cualquier carácter que no esté en la lista o que esté contenido dentro de un rango
de la lista.
[:clase:] Clase de carácter de estilo POSIX (válida solo dentro de una clase de carácter).
solo video
Clase Significado
Secuencia Significado
ps Fin de una línea cuando aparece en último lugar en una expresión regular;
de lo contrario, se empareja a sí mismo.
\< Comienzo del límite de la palabra (es decir, una posición entre un carácter
de puntuación o espacio y un carácter de palabra).
modificador Significado
:establecer ic Active el modo que no distingue entre mayúsculas y minúsculas para todas las
búsquedas y sustituciones.
vi Redactor | 105
Machine Translated by Google
modificador Significado
\E o \e
Finaliza un lapso que comenzó con \U o \L.
Secuencia Significado
solo video
\= Partido 1 o 0 veces.
La coincidencia de patrones
buscando
/patrón ?patrón
Se mueve al inicio de la siguiente posición en el archivo que coincide con el patrón. Un patrón ? busca hacia atrás.
Una búsqueda se puede repetir con los comandos n (búsqueda hacia adelante) o N (búsqueda hacia atrás).
Sustitución
:[dirección1[,dirección2]]s/patrón/reemplazo/[cgp]
Reemplace el texto que coincide con el patrón con el reemplazo en cada línea del rango de direcciones. Si no se proporciona un
rango de direcciones, se utiliza la línea actual. Cada dirección puede ser un número de línea o una expresión regular. Si se
proporciona addr1 , la sustitución comienza en ese número de línea (o la primera línea coincidente) y continúa hasta el final del
archivo o la línea indicada (o coincidente) por addr2. También hay una serie de atajos de direcciones, que se describen en las
siguientes tablas.
Opciones de sustitución
Opción Significado
gramo
Reemplace todas las coincidencias en una línea.
pag
Línea de impresión después de la sustitución.
Atajos de direcciones
DIRECCIÓN Significado
. Línea actual.
% Archivo completo.
no Posición T.
vi Redactor | 107
Machine Translated by Google
Ejemplos
Ejemplo 35. Búsqueda simple en vi
Otros recursos
• Learning the vi Editor, Sixth Edition, de Linda Lamb y Arnold
Robbins (O'Reilly), es una guía para el editor vi y los clones
populares de vi . •
http://www.geocities.com/volontir/, por Oleg Raisky, es una
descripción general de la sintaxis de expresiones regulares de Vim .
Herramientas de concha
\b Retroceso. awk
literalmente se
represente a sí mismo.
construcciones
un rango enumerado.
rango de la lista.
Z09_].
[^azAZ0 9_].
POSIX.
Tabla 63. Anclajes de coraza y otras herramientas de coraza de prueba de ancho cero
Herramienta
Secuencia Significado
^
Coincide solo con el inicio de la awk, sed, egrep
de la palabra.
de la palabra.
opción de línea de comandos: i Coincidencia que no distingue entre mayúsculas y minúsculas egrep
para caracteres ASCII.
awk
(PATRÓN) Agrupamiento.
sed
\(PATRÓN\) Agrupar y capturar
subcoincidencias, llenando
\1, \2,...,\9.
Cuantificadores codiciosos
egrep
egrep [opciones] archivos de patrón
egrep busca en los archivos las ocurrencias del patrón e imprime cada línea coincidente.
Ejemplo
$ echo 'Spiderman Menaces City!' > dailybugle.txt $ egrep
i 'spider[ ]?man' dailybugle.txt ¡ Spiderman
amenaza la ciudad!
sed
archivos sed '[dirección1][, dirección2]s/patrón/reemplazo/[banderas]'
archivos sed f script
De forma predeterminada, sed aplica la sustitución a cada línea de los archivos. Cada dirección puede ser
un número de línea o un patrón de expresión regular. Se debe definir una expresión regular proporcionada
w archivo
Ejemplo
awk
awk 'instructions' files awk f
script files El script awk
contenido en instrucciones o script debe ser una serie de pares /patrón/ {acción} .
El código de acción se aplica a cada línea que coincide con el patrón. awk
también proporciona varias funciones para la coincidencia de patrones.
Funciones
coincidencia (texto, patrón)
Ejemplo
Cree un archivo awk y luego ejecútelo desde la línea de comandos.
$ gato sub.awk
{
gsub(/https?:\/\/[az_.\\w\/\\#~:?+=&;%@!]*/, "<a
href=\"\&\"> \&</a>");
imprimir
}
Otros recursos
• sed and awk, de Dale Dougherty y Arnold Robbins
(O'Reilly), es una introducción y referencia a ambas herramientas.
Índice
clases
Símbolos
Grupo, 46
[...] clase de caracteres, 6
java.util.regex
[^...] clase de caracteres, 6
Matcher, 30
Patrón, 30
A
PatternSyntaxException, 30
atajos de direcciones, editor vi, 107 Coincidencia,
anclas, 9 46 Regex,
servidor web apache, 96 43
directivas coincidentes, 102 Ruby MatchData,
motor de reescritura, 99 70 Regexp,
ASCII, 5 70 clases, .NET, 42
caracteres de control, 5
B
D
barras invertidas en expresiones
regulares Literales de Autómata finito determinista
cadena, Java (DFA), 3
(java.util.regex), 30 límite, palabra, 10
mi
C
motores, 3
C#, 38 DFA (Determinista Finito
clases de caracteres, 6 Autómata), 3
abreviaturas de caracteres, 5 NFA (No determinista Finito
interfaz CharSequence, 30 Autómata), 3
Nos gustaría escuchar sus sugerencias para mejorar nuestros índices. Envíe un correo
electrónico a index@oreilly.com.
115
Machine Translated by Google
F metasecuencias, 5
modificadores, modo, 10
función de búsqueda (Python), 63
norte
GRAMO
Hazel, Philip, 83
escape hexagonal, 5
O escape octal, 5
I
PAG
interfaces, 42
paréntesis, captura y agrupación,
Java (java.util.regex), 30
11 clase de
patrón, java.util.regex, 30 coincidencia
j de patrones, 3 clase
Java (java.util.regex), 26 PatternSyntaxException, java.util.regex,
java.util.regex 30 API de PCRE, 89
Clase Matcher, 30 ejemplos de
Clase Pattern, 30 bibliotecas de PCRE, 92
Clase PatternSyntaxException, función pcre_compile( ) (PCRE),
30 89 pcre_exec
JavaScript, 77 ( ) función (PCRE), 89
Coincidencia de patrones, Biblioteca de
79 Objeto RegExp, 80 expresiones regulares
Objeto String, 80 compatibles con Perl
(PCRE), 83
Perl versión 5.8, 16
L
operadores de
mirar hacia adelante,
expresiones
10 construcciones de mirar alrededor,
regulares, 21 comillas
10 mirar hacia atrás, 10
simples,
21 PHP, 50 funciones
M de coincidencia
de patrones,
Match class, 46, 70 match
54 Python, 58 Compatibilidad con Unicode, 64
function (Python), 63 Matcher class,
java.util.regex, 30 coincidencia, iterativo, 10
metacaracteres, 3, 5 Java Q
(java.util.regex), 26 Perl
cuantificadores, 3
versión 5.8, 16
116 | Índice
Machine Translated by Google
R tu
herramientas shell,
109 ejemplos, 114
Objeto de cadena, JavaScript, 80
subpatrones, agrupación, 11
opciones de
sustitución, editor vi, 107
Índice | 117
Machine Translated by Google
Machine Translated by Google