L'extraction de Données avec Python Expressions Régulières
Je vais avoir quelques problèmes d'emballage de ma tête autour de Python expressions régulières à venir avec une expression régulière pour extraire des valeurs spécifiques.
La page que je suis en train de les analyser a un certain nombre de productIds qui apparaissent dans le format suivant
\"productId\":\"111111\"
J'ai besoin d'extraire toutes les valeurs, 111111
dans ce cas.
- Avez-vous lu le documentation sur le langage python expressions régulières?
- Est-ce que vous êtes nouveau à la regex, python, ou les deux? Quelle partie avez-vous besoin d'aide? Qu'avez-vous essayé?
- Double Possible de comment extraire une sous-chaîne à partir de l'intérieur d'une chaîne de caractères en Python?
Vous devez vous connecter pour publier un commentaire.
sens de match non-caractères de mot (
\W*
), puisproductId
suivie par des non-colonne de caractères ([^:]*
) et un:
. Alors correspondre à des non-chiffres (\D*
) et match et capturer les chiffres suivants ((\d+)
).Sortie
quelque chose comme ceci:
Les barres obliques inverses ici pourrait ajouter à la confusion, car ils sont utilisés comme un caractère d'échappement à la fois par la (non-raw) Python chaînes et par la syntaxe regexp.
Cette extraits de l'id de produit dans le format que vous avez posté:
La chaîne brute
r'...'
n'loin avec un niveau de barre oblique inverse s'échapper; l'utilisation d'un seul devis que le délimiteur de chaîne permet d'éliminer le besoin d'échapper les guillemets doubles; et enfin la backslashe sont doublés (une seule fois) à cause de leur signification particulière à l'expression de la langue.Vous pouvez utiliser l'objet regexp est
findall()
méthode pour trouver tous les matches du texte:Cela, vous obtiendrez une liste de tous les id de produit.
Essayer cela,
Donner d'autres exemples de vos données, si ce n'est pas faire ce que vous voulez.