2 votes

Extraire de nombreux numéros de téléphone à l'aide de RegEx

Je veux extraire des numéros de téléphone à partir de l'expression rationnelle suivante. Elle extrait tous les formats de numéros de téléphone lorsque je saisis les numéros un par un mais pas lorsque je saisis 2 ou plusieurs numéros dans une chaîne.

@"^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$";

3voto

Jim Mischel Points 68586

Bien sûr, il ne pourra pas extraire plusieurs numéros. L'expression commence par ^ et se termine par $ Par conséquent, si la chaîne contient autre chose qu'un seul numéro de téléphone, l'expression régulière ne correspondra pas.

Une solution consiste à supprimer ces caractères de début et de fin, puis à boucler pour extraire les chiffres un par un.

Regex rePhone = new Regex(@"\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d");
Match m = rePhone.Match(inputString);
while (m.Success)
{
    string phone = m.Value;
    m = m.NextMatch();
}

1voto

D.L.MAN Points 75

Pour extraire tous les numéros de téléphone, vous pouvez essayer cette Regex :

((\+|\+\s|\d{1}\s?|\()(\d\)?\s?[-\.\s\(]??){8,}\d{1}|\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})

les mathématiques sont souvent des numéros de téléphone. vous pouvez vérifier vos numéros de téléphone avec cette Regex en Regex101.com

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X