Publicado el 13 de Diciembre del 2020
737 visualizaciones desde el 13 de Diciembre del 2020
154,8 KB
24 paginas
Creado hace 22a (08/03/2003)
Expresiones Regulares
’
Las expresiones regulares
$
Denen un conjunto de uno o mas strings de caracteres
Varias utileras usan expresiones regulares para
buscar/reemplazar
Un string simple de caracteres es una expresion regular que
dene un solo string de caracteres: el mismo
Una expresion regular mas compleja usa letras, numeros y
caracteres especiales para denir varios strings de caracteres
diferentes
Se dice que una expresion regular identica (matchs) cualquier
string que dene
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
No hay que confundir expresiones regulares con Wildcards
(comodines) usados por el shell para pattern matching:
*
?
(
)
[
]
|
Utileras como cpio utilizan estos ultimos y no expresiones
regulares
Comandos awk, find, grep y otros utilizan expresiones
regulares
Editor vi utiliza expresiones regulares y caracteres comodines
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
Los caracteres
$
Un caracter es cualquier caracter excepto el <retorno-lnea>
Un caracter especial es un caracter que no se representa
Para representar un caracter especial se usa un backslah (\)
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
Los delimitadores
$
Marcan el principio y nal de una expresion regular
Es un caracter especial para la expresion regular que delimita
Se puede utilizar cualquier caracter como delimitador siempre y
cuando sea el mismo caracter en ambos extremos de la
expresion
Por simplicidad aqu se usa el caracter /
En algunos casos el segundo delimitador no es necesario, p.e.
cuando es seguido de un <return>
Delimitadores no son usados en las utileras grep (grep, egrep
y fgrep)
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
Los strings simples
$
Lo mas simple es un string que no contiene caracteres
especiales, excepto los delimitadores
El string simple solo se identica a si mismo
Ejemplos:
Expresion
Identicar Ejemplos
Regular
/ring/
ring
ring, spring, ringing
/Thursday/ Thursday
Thursday, Thursdays
/or not/
or not
or not, poor nothing
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
El punto .
$
Un punto identica cualquier caracter
Ejemplos:
Expresion Identicar
Ejemplos
Regular
/ .alk/
todos strings que contienen <espacio> will talk,
seguido por cualquier caracter seguido may balk
por alk
/.ing/
todos strings con cualquier caracter
singing,
precediendo ing
&
Dr. Roberto Gomez C.
ping,
inglenook
%
Expresiones Regulares
’
Los corchetes [ ]
$
Denen un conjunto de caracteres que identican cualquier
caracter simple dentro de los corchetes
Si un caracter ^ sigue al [ el conjunto representa los caracteres
a no tomar en cuenta para la identicacion
Dentro corchetes los caracteres: * $ y \ pierden su signicado
especial
Para que un caracter ] sea considerado como miembro del
conjunto debe ser el primer caracter despues de [
Un caracter ^ es especial solo si aparece como el primer
caracter despues de [
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
Ejemplos:
$
Expresion
Identicar
Ejemplos
Regular
/[bB]ill/
carcater miembro conjunto bill, Bill
b y B, seguido por ill
billed
/t[aeiou].k/
t seguido vocal minuscula
talkative
cualquier caracter y k
stink
/number [- ]/ number seguido por un
number ,
<espacio> y un miembro
number :,
del conjunto entre y
get number
/[^a-zA-Z]
cualquier caracter no-letra
, , @, Stop!
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
El asterisco: *
$
El asterisco representa cero o mas ocurrencias de una
concurrencia de expresiones regulares
Asterisco despues punto identica cualquier string caracteres
Conjunto caracteres seguido de un asterisco identica string de
caracteres que son miembros del conjunto
Ejemplos:
Expresion Concordancia
Ejemplos
Regular
/ab*c/
a seguido de cero o mas
ac, abc, abbc,
b’s seguido por una c
debbcaabbbc
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
/ ab.*c/
ab seguido de cero o mas
abc, abxc, abc
caracteres seguido por una c
xab . x cat
/t.*ing/
t seguido de cero o mas
thing, ting
caracteres seguido por ing
I think of going
/[a-zA-Z]*/
string compuesto solo por
. any string
letras <espacio>s
sin numeros
/(.*)/
tan largo como posible entre
Get (this) and
( y )
that)
/([^]*)/
tan corto como posible que
(this)
empieze con ( y termine con ) Get (this and
that)
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Gorrito y signo de pesos
Una expresion que empieza con un gorrio ^ puede identicar un
string solo al principio de la lnea
Signo de pesos $ al nal de una expresion regular la expresion
identica el nal de la lnea
Ejemplos:
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Expresion Concordancia
Ejemplos
Regular
/^T/
una T al principio de una
This line...,
lnea
That time...,
In Time
/^+[ - ]/
un signo mas seguido de un nu- +, +.,
mero al principio de una lnea
+ Keep this...
/:$/
dos puntos que terminan una
...below:
lnea
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Marcando caracteres especiales
Se puede marcar cualquier caracter (pero no un dgito o
parentesis) precediendolo por un backslash
El marcar (quoting) un caracter especial hace que dicho
caracter se represente a si mismo
Ejemplos:
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Expresion Concuerda
Ejemplos
Regular
/end\./
todos strings que contienen The end., send.,
/\\/
/\*/
end seguidos por un punto
pretend.mail
un simple anti-slash
\
un asterisco
*.c, un asterisco(*)
/\[\]
[]
/and \/or/
and/or
fue un []
and/or
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Reglas expresiones regulares
Concordancia mas larga posible
{ expresion regular identica al string mas grande posible
{ empieza en la parte mas alejada de la lnea
{ ejemplo:
This (rug) is not what it once was (a long time
ago), is it?
que identican las expresiones: /Th.*is/, /(.*)/ y
/([^)]*)/
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Expresiones regulares vacas
{ expresion regular vaca representa la ultima expresion
{ ejemplo en vi: :s/mike/robert/
para hacer misma substitucion: :s//robert/
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Expresiones regulares completas
Utileras egrep y awk proporcionan todos los caracteres
especiales que se usan en expresiones regulares, excepto por \(
y \) y otros
Patrones que usan el conjunto extendido de caracteres
especiales se conocen con el nombre de expresiones regulares
completas
Ejemplos caracteres extras son: + y ?
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Expresion Identica
Ejemplos
Regular
/ab+c/
a seguido de una o mas b’s
yabcw, abbc
seguidos de una c
/ab?c/
a seguido de cero o una b’s
back, abcdef
seguidos de una c
/(ab)+c/
una o mas ocurrencias del string
zabcd, ababc!
ab seguidos de una c
/(ab)?c/
cero o una ocurrencia del string
xc, abcc
ab seguidos de una c
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Expresiones regulares completas y el pipe
En expresiones regulares completas el pipe | actua como or
Un pipe entre dos expresiones provoca una concordancia
cuando el string concuerda con la primera o segunda expresion
Posible usar parentesis para separar las expresiones regulares
que van a ser ledas
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
Expresion
Signicado
Ejemplos
Regular
/ab|ac/
ya sea ab o ac
yab, ac, abac
/^Exit|^Quit/
lneas que empiezan con Exit,
Exit o Quit
Quit,
No Exit
/(D|N)\. Jones/ D. Jones o N. Jones
P.D. Jones,
N. Jones
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
Caracteres especiales en expresiones regulares
$
Caracter Funcion
Especial
.
identica cualquier caracter simple
[xyz]
dene conjunto caracteres que identican x, y o z
[^xyz]
dene conjunto caracteres que concuerda con
cualquier caracter excepto x, y o z
identica cero o mas ocurrencias de la concordancia
del caracter precedente
forza una identicacion al principio de la lnea
identicacion al nal de la lnea
*
^
$
&
Dr. Roberto Gomez C.
%
Expresiones Regulares
’
$
\
usado para marcar caracteres especiales
\(xyz\)
identica lo que xyz identique
(a bracketed regular expression)
\<
\>
forza una concordanc
Comentarios de: Las expresiones regulares (0)
No hay comentarios