J'espère avoir un nom d'état dans la phrase comme "12345 Big Street, New York 12345 États-Unis". J'espère attraper "New York", mais je ne sais pas comment obtenir le nom d'état entre une virgule et le code postal par une expression régulière à Python. P>
avez essayé une expression régulière, il peut obtenir le mot après la virgule, mais cela n'atteignit que "nouveau" plutôt que "New York" P>
5 Réponses :
Vous pouvez utiliser Ceci peut être vu travailler sur REGEX101 ici . P> (? <=, \ s). * (? = \ s \ d) code>, qui utilise un aspect positif sur une virgule suivie d'un espace suivi d'un espace suivi d'un espace suivi d'un espace suivi de avec un aspect positif sur un espace suivi d'un chiffre. p>
"12345 Big Street, New York 12345 États-Unis" Code> -> New York Code> P>
Peut-être que cette expression simple pourrait fonctionner juste bien: et vous pouvez le faire de la même manière pour les 2 lettres, si vous aviez celles: p> ['New York', 'new jersey']
Une solution assez simple qui fonctionne si toutes vos chaînes d'entrée sont du même type que vous échantillonnez. sortie: p>
Vous pouvez utiliser cette regex qui devrait capturer le nom de la ville ayant une ou des espaces (s) ou sans espace dans le premier modèle de regroupement.
New York
Une autre façon serait (plus simple, je pense):
Pour obtenir de l'aide sur Stackoverflow, il est généralement préférable de partager le code que vous avez essayé, montrez ce que cela produit et ce que vous attendiez. Sinon, on dirait que vous demandez aux autres de faire votre programmation pour vous.
a essayé une expression régulière b>, postez ceux que vous avez essayés.
Vous pouvez au moins utiliser
text.split (",") [1] code> pour supprimer les pièces avant le nom de l'état. Et plus tard, vous devez prendre le numéro pour trouver la fin du nom de l'état.