Problemas con expresión regular
Publicado: 2007-04-23 02:13 @134
Hola tengo que reconocer el siguiente patrón en un texto que viene en un archivo .txt. El patrón es la frase que comience en una nueva línea con "En los concursos .." (espacio en blanco después de 'concursos') y finalice con "." o ":". Esta frase puede ocupar más de una línea, ya que el "." podría encontrarse en la línea siguiente.
Este es el código, no sé qué hago mal porque solo despliega una oración, y no todas las que hay.
Gracias por cualquier sugerencia, aquí va el código.
Saludos.
Este es el código, no sé qué hago mal porque solo despliega una oración, y no todas las que hay.
Gracias por cualquier sugerencia, aquí va el código.
Saludos.
Using perl Syntax Highlighting
$er_concursos = '^En los concursos\s.*(:|\.)';
if(scalar(@ARGV)>0) # Compruebo que haya archivos
{
foreach $file (@ARGV) # Busca en todos los archivos
{
if(open(INFILE,$file))
{
$file_aux = "";
while ($linea = <INFILE>)
{
$file_aux = $file_aux.$linea; # Leemos todas las líneas y las metemos en una variable
}
close (INFILE);
print $er_concursos if ($file_aux =~ /$er_concursos/gsm)
}
else
{print "No se pudo abrir archivo $file\n";}
}
}
if(scalar(@ARGV)>0) # Compruebo que haya archivos
{
foreach $file (@ARGV) # Busca en todos los archivos
{
if(open(INFILE,$file))
{
$file_aux = "";
while ($linea = <INFILE>)
{
$file_aux = $file_aux.$linea; # Leemos todas las líneas y las metemos en una variable
}
close (INFILE);
print $er_concursos if ($file_aux =~ /$er_concursos/gsm)
}
else
{print "No se pudo abrir archivo $file\n";}
}
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4