Regex pour correspondre à tous les états-unis numéro de téléphone de formats
Tout d'abord, je dirais que j'ai vu de nombreux exemples ici et sur google mais rien trouvé qui correspond à tous les condition je suis à la recherche pour certains de match 3 premiers pas en dessous d'un certain intervalle.
Veuillez me faire savoir comment les mettre tous dans un seul endroit.
(xxx)xxxxxxx
(xxx) xxxxxxx
(xxx)xxx-xxxx
(xxx) xxx-xxxx
xxxxxxxxxx
xxx-xxx-xxxxx
En utilisant comme :
const string MatchPhonePattern =
@"\(?\d{3}\)?-? *\d{3}-? *-?\d{4}";
Regex rx = new Regex(MatchPhonePattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
//Find matches.
MatchCollection matches = rx.Matches(text);
//Report the number of matches found.
int noOfMatches = matches.Count;
//Report on each match.
foreach (Match match in matches)
{
tempPhoneNumbers= match.Value.ToString(); ;
}
EXEMPLE DE SORTIE:
3087774825
(281)388-0388
(281)388-0300
(979) 778-0978
(281)934-2479
(281)934-2447
(979)826-3273
(979)826-3255
1334714149
(281)356-2530
(281)356-5264
(936)825-2081
(832)595-9500
(832)595-9501
281-342-2452
1334431660
OriginalL'auteur confusedMind | 2013-08-06
Vous devez vous connecter pour publier un commentaire.
\(?\d{3}\)?-? *\d{3}-? *-?\d{4}
Pas de problème, semble de plus en plus prétentieux que de la fin. Ne peux pas dire que je suis un fan.
hey fonctionne parfaitement 🙂 , juste une question est est bon d'ajouter l'un avec xxxxxxxxxx comme je pense qu'il prend peut-être des nombres aléatoires est-ce possible? google analytique des nombres, etc?
Ironiquement de plusieurs réponses, celui-ci répond le mieux à mes besoins, donc merci de répondre. Pour info, je suis intéressé par l'appariement des points et des espaces, ainsi
\(?\d{3}\)?[. -]? *\d{3}[. -]? *[. -]?\d{4}
a fait le tour pour moi.Le suivant doit retourner false (pour plus de 10 chiffres de votre numéro de téléphone), mais renvoie true: Regex.IsMatch("(012)34568902", @"(?\d{3})?-? *\d{3}-? *-?\d{4}" ) Regex.IsMatch("01234568902", @"(?\d{3})?-? *\d{3}-? *-?\d{4}" ) ?Regex.IsMatch("012 345 68902", @"(?\d{3})?-? *\d{3}-? *-?\d{4}" ) Cela devrait vous donner ce dont vous avez besoin: @"^(?([0-9]{3}))?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$" authorcode.com/...
OriginalL'auteur FlyingStreudel
OriginalL'auteur Karan Singh
À étendre FlyingStreudel la bonne réponse, je l'ai modifié pour accepter '.' comme délimiteur, ce qui était une obligation pour moi.
\(?\d{3}\)?[-\.]? *\d{3}[-\.]? *[-\.]?\d{4}
en cours d'utilisation (trouver tous les numéros de téléphone dans une chaîne de caractères):
OriginalL'auteur James Wierzba
À ajouter à toutes les suggestions ci-dessus, voici ma RegEx de l'application des PNNA normes:
Cette expression régulière applique PNNA règles Standard tels que
N11 codes are used to provide three-digit dialing access to special services
, et exclut donc l'utilisation d'un conditionnel de capture. Il représente également jusqu'à 3 chiffre caractères (\D{0,3}
) entre les sections, parce que j'ai vu certains funky de données.À partir des données de test, voici le Résultat:
Remarque qu'il y a deux valeurs de l'échantillon omis en raison de ne pas être valide les numéros de téléphone par PNNA Normes: Zone Code commence avec 1
La règle que je me réfère à peut être trouvé sur la Nationale NANPA le site web de la Zone de la page des Codes indiquant,
The format of an area code is NXX, where N is any digit 2 through 9 and X is any digit 0 through 9.
OriginalL'auteur user1622895
Vous aider vous-même. Ne pas utiliser un regex pour cela. Google libération d'une grande bibliothèque pour gérer ce cas d'utilisation spécifiques: libphonenumber. Il y a un démonstration en ligne de la lib.
Démo sur .NETFiddle
OriginalL'auteur aloisdg