Funciones preg_match(
patron,
contexto[,
captura])
preg_match_all(
patron,
contexto[,
captura])
preg_replace(
patron,
reemplazo,
contexto)
preg_replace_callback(
patron,
callback,
contexto)
preg_grep(
patron, array)
preg_split(
patron,
contexto)
NOTA: solo el parámetro de
patron debe llevar separadores familiares entre si, ademas de no ser reservados (se pueden usar, pero solo si no se usan en la expresión) si se usa con las funciones mencionadas
preg_* /h(o|0)+la/i - hooo00oola, hola, h0ola, etc.
|h[o0]*la|i - hla, hola, h0la, h000o000la, etc.
@#[a-f0-9]{3,6}@i #fcf, #06fc05, etc.
#\d,\d\,d# - 0,255,9999999 etc.
Código PHP:
$str = 'mi mama me ama y mi pa tambien';
preg_match_all('<\b(?:(?:m|p)a){1,2}\b>', $str, $tmp);
$out = print_r($tmp, true);
echo "$str<pre>$out</pre>";
Grupos o clases de caracteres \w Cualquier "palabra" (a-z 0-9 _)
\W Cualquier NO "palabra”
\s Espacio (espacio, tabulador, CRLF)
\S Cualquier NO espacio
\d Dígitos (0-9)
\D Cualquier NO dígito
. (punto) – Cualquier carácter, excepto nueva linea
Meta caracteres ^ Inicio del
contexto (o linea en modo multilinea)
$ Fin del
contexto (o linea en modo multilinea)
[ Inicio del grupo o clase de caracteres
] Fin del grupo o clase de caracteres
| Alternativas, ej. (a|b)
captura a o
b ( Inicia un sub
patron (o
captura)
) Fin del sub
patron \ Escape de caracteres
Cuantificadores n* Cero o mas de
n n+ Uno o mas de
n n? Uno o ninguno de
n {n} Exactamente
n ocurrencias
{n,} Al menos
n ocurrencias
{,m} Hasta
m ocurrencias
{n,m} Entre
n y
m ocurrencias (inclusivo)
Modificadores de contexto i Insensitivo – no distingue mayúsculas de minúsculas
m Multilinea -
^ y
$ indican el inicio y fin de cada linea
s Todo - el . (punto)
captura todo, incluyendo nueva linea
x Extendido – comentarios & espacios
e Evaluar (preg_replace) – interpreta el reemplazo como código PHP
S Análisis extra del
patron U El
patron es insatisfactorio
u El
patron es tratado como
UTF-8 captura basada en puntos \b Entre palabras (\w)
\B No entre palabras
\A Inicio del
contexto (^)
\Z Fin del
contexto o fin de linea
\z Fin del contexto ($)
\G Primer posición de
captura en el
contexto Modificadores de Sub patron y captura (?:) No
captura sub
patron - ((?:foo|fu)bar)
captura foobar o
fubar sin que
foo o
fu se capture como sub
patron (?=) Mirar adelante - foo(?=bar)
captura foo cuando es seguido de
bar (?!) Mirar adelante (negativa) - foo(?!bar)
captura foo cuando NO es seguido de
bar (?<=) Mirar atras - (?<=foo)bar
captura bar cuando es precedido de
foo (?<!) Mirar atras (negativa) - (?<!foo)bar
captura bar cuando NO es precedido de
foo (?>) Al menos el sub
patron - (?>\d+)bar
captura aun cuando
bar NO esta presente
(?(x)) Condicionales de sub
patron - (?(3)foo|fu)bar
captura foo si el 3er sub
patron se capturo,
fu si no
(?#) Comentario - (?# el
patron hace
x y o
z)
PDTA:
ejemplos y usos, bastantes hay en el manual de PHP... y en el Internet mismo, suerte!
Edito: vi este enlace (apenas)
Regular expressions cheat sheet