328 votes

RegEx: Interception de valeurs entre guillemets

J’ai une valeur comme suit :

Quel regex retourne les valeurs entourés les guillemets (par exemple et ) ?

466voto

Adam Points 2408

J'ai été en utilisant le suit avec grand succès:

(["'])(?:(?=(\\?))\2.)*?\1

Il prend en charge imbriquée entre guillemets.

Pour ceux qui veulent une explication plus approfondie de la façon dont cela fonctionne, voici une explication de l'utilisateur ephemient:

([""']) correspondent à un devis; ((?=(\?))\2.) si la barre oblique inverse existe, avaler il, et si oui ou non cela se produit, correspondent à un personnage; *? correspondre à de nombreuses reprises (non goulûment, comme de ne pas manger le cours de clôture); \1 correspondent à la même citation qui a été utiliser pour l'ouverture.

462voto

Greg Hewgill Points 356191

En général, le fragment de l’expression régulière suivant est ce que vous cherchez :

Cet exemple utilise le non gourmand * ? opérateur à tout saisir jusqu'à mais non compris le prochain guillemet. Ensuite, vous utilisez un mécanisme spécifique au langage pour extraire le texte correspondant.

En Python, vous pourriez faire :

120voto

Loki Astari Points 116129

Je pencherais pour :

Le [^ "] est regex pour n’importe quel caractère sauf"""
La raison pour laquelle que je l’utilise sur l’exploitant de nombreux non gourmand, c’est que je dois continuer à chercher que vers le haut juste pour s’assurer que je reçois il correct.

8voto

Axeman Points 24103

Cette version

  • représente des guillemets échappés
  • contrôles de revenir en arrière

6voto

miracle2k Points 3285

J’ai aimé la version plus large d’armé d’une hache, mais avait des ennuis avec lui (il ne correspond pas par exemple

ou

correctement, alors j’ai essayé de le fixer :

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