es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Coincidir y extraer número de teléfono con formato (312) 555-1212 en Perl

Tratando de hacer que Perl reconozca y extraiga un número de teléfono en una cadena con un formato extraño que se encuentra en un archivo:

my $str = 'Teléfono:

(312) 555-1212 _
';

Intenté esta solución, pero termina extrayendo todos los números de las cadenas:

my @all_nums = $element =~ /(\d+)/g;

if (@all_nums) {

    my $ph = join('-', @all_nums);
    print "NÚMERO DE TELÉFONO: $ph\n";

    push(@elements_found, $ph);

}

Cualquier ayuda es muy apreciada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para extraer solo el número de teléfono de la cadena, puede utilizar el siguiente regex:

    /[(]\d{3}[)]\s?\d{3}[-]\d{4}/
    

    Este regex busca un patrón que comienza con un paréntesis de apertura, seguido de tres dígitos, luego un paréntesis de cierre, un carácter opcional de espacio, tres dígitos más, un guión y finalmente otros cuatro dígitos.

    Para implementar este regex en su código, reemplace la línea

    my @all_nums = $element =~ /(\d+)/g;
    

    con

    my ($ph) = $element =~ /[(]\d{3}[)]\s?\d{3}[-]\d{4}/;
    

    Esto asignará el número de teléfono a la variable $ph, que luego puede imprimir o usar según sea necesario.

Comments are closed.