Comment extraire la chaîne entre guillemets (guillemets doubles ou guillemets simples)

Question 1:

Par exemple,

      ... "ab'cd" ... 'ab "cd' ...

Il devrait recevoir respectivement ab'cd et ab"cd . Il peut y avoir de nombreuses chaînes entre guillemets.


Question 2:

Et comment extraire du text

...

text partir de la chaîne suivante?

 text ... text text ... text text ... text 

abc, def, xyz peuvent être nesteds dans

.

regex:

(?:"(?[^"]*)")|(?:'(?[^']*)')

et l’extrait entier:

 Regex regex = new Regex( @"(?:""(?[^""]*)"")|(?:'(?[^']*)')", RegexOptions.None ); 

Testable sur mon blog (nécessite silverlight)

On dirait que c’est une question 2 en 1, n’est-ce pas?

Ma réponse à 1 est

 ((.*)['"](.*)) 

alors pour # 2

 <(abc|xyz|def)>(.*)<\/(abc|xyz|def)> 

abc | xyz | def <- imaginez ça comme ça

n’oubliez pas de TRIMER les espaces avant d’utiliser les résultats

pour la première question, utilisez:

("(?[^"]*)")|('(?[^']*)')

pour la deuxième question:

>(?\w*\s*

.*

[\w\s]*)<

et obtenez le contenu du groupe nommé pour les deux.

Je l’ai compris – en utilisant une référence en arrière.

 (["'])(?.+?)\1