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.

Expresiones regulares para encontrar y extraer números de teléfono de América del Norte.

Necesito coincidir y extraer números de teléfono del texto… números de teléfono que estén en este formato:

589-845-2889

(589)-845-2889

589.845.2889

589 845 2889

5898452889

(589) 845 2889

La siguiente operación coincide con lo anterior con gran precisión:

preg_match_all(“/(()?\d{3}(?(1)))[-. ]?\d{3}[-. ]?\d{4}/”, $test, $result);

Por lo tanto, necesito extenderlo para admitir el prefijo internacional, como 1 o +1. Por lo tanto, también debería coincidir con 1(589) 845 2889, +1(589) 845 2889, 1589 845 2889, 1 589 845 2889, 15898452889, etc.

Agradecería mucho cualquier ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para incluir prefijos internacionales en el patrón de regex de coincidencia de números de teléfono, se pueden hacer las siguientes modificaciones:

    preg_match_all("/[+]?1?[ ]?(\()?\d{3}(?(1)\))[-. ]?\d{3}[-. ]?\d{4}/", $test, $result);
    

    Aquí, [+]? coincide con el signo más opcional, y 1? coincide con un dígito opcional 1. Los siguientes [ ]? coinciden opcionalmente con un solo espacio. Todas las demás partes del patrón de regex original son iguales.

    Este patrón modificado coincidirá con números de teléfono con o sin prefijos internacionales, y en cualquiera de los formatos enumerados en la pregunta original.

Comments are closed.