-4
votes

Obtenez un nom d'état après la virgule

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.

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"


3 commentaires

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 , postez ceux que vous avez essayés.


Vous pouvez au moins utiliser text.split (",") [1] 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.


5 Réponses :


1
votes

Vous pouvez utiliser (? <=, \ s). * (? = \ s \ d) , 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.

"12345 Big Street, New York 12345 États-Unis" -> New York

Ceci peut être vu travailler sur REGEX101 ici .


0 commentaires

1
votes

Peut-être que cette expression simple pourrait fonctionner juste bien: xxx pré>

et vous pouvez le faire de la même manière pour les 2 lettres, si vous aviez celles: p>

['New York', 'new jersey']


0 commentaires

1
votes

Une solution assez simple qui fonctionne si toutes vos chaînes d'entrée sont du même type que vous échantillonnez. xxx

sortie: xxx


0 commentaires

1
votes

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


0 commentaires

1
votes

Une autre façon serait (plus simple, je pense): xxx


0 commentaires