¿Cómo se combinan los caracteres acentuados y tilde en una expresión regular perl (regexp)?
Un usuario ingresa un conjunto de nombres con acentos y tildes:
Renato Núñez, David DeJesús, and Edwin Encarnación
Mi base de datos tiene nombres anglicizados para estas personas
@names = ('Renato Nunez','David DeJesus','Edwin Encarnacion');
Deseo hacer una coincidencia de expresiones regulares con estos nombres.
$string = "Renato Núñez, David DeJesús, and Edwin Encarnación";
foreach my $name (@names) {
print "found:$name\n" if ($name =~ /$string/);
}
Como se presenta actualmente, no obtengo coincidencias.
ntenté esto, pero no funcionó.
$string = "Renato Núñez, David DeJesús, and Edwin Encarnación";
foreach my $name (@names) {
$name =~ s|a|[áa]|;
$name =~ s|e|[ée]|;
$name =~ s|i|[íi]|;
$name =~ s|o|[óo]|;
$name =~ s|u|[úu]|;
$name =~ s|n|[ñn]|;
# Originally: print "found:$name\n" if ($name =~ /$string/);
# Corrected to:
print "found:$name\n" if ($string =~ /$name/);
}
EDIT: lo siento, tuve $ name y $ string invertidos en la última línea.
¿Alguna sugerencia