2010-09-25 4 views
3

Je suis en train de construire une regex pour trouver une chaîne en rubisutilisant des expressions régulières en rubis pour trouver une chaîne dans les citations

str = "foo" 

Je veux être en mesure d'arrêter d'essayer de trouver la chaîne après qu'il trouve la guillemet fermant. Je veux aussi garder les guillemets donc je ne peux afficher la chaîne, je trouve que:

puts "the string is:" + str 
=> the string is: "foo" 

Je suis assez nouveau à l'utilisation des expressions régulières.

+0

Pouvez-vous être plus précis sur le format des chaînes que vous essayez de faire correspondre? Est-ce que ce sera toujours des doubles quotes? Pourrait-il y avoir des guillemets échappés à l'intérieur de la chaîne? –

Répondre

2

Voici un début:

/".*?"/ 

Explication:

 
" Match a literal double quote. 
.*? Match any characters, as few as possible (non-greedy) 
" Match a second literal double quote. 

Rubular

Notez que cela ne fonctionnera pas si la chaîne contient des guillemets ou est cité avec des guillemets simples.

+0

Rubular est génial. Je me suis juste tourné dessus et cela fait gagner beaucoup de temps, surtout si vous êtes nouveau dans les expressions régulières. –

Questions connexes