Comment rechercher du texte entouré par des guillemets doubles avec la RegEx?

J'ai une chaîne avec un code HTML, par exemple:

This is <strong id="c1-id-8">some</strong> <em id="c1-id-9">text</em>

J'ai besoin de dépouiller le id attribut de chaque balise HTML, mais j'ai zéro expérience avec des expressions régulières, j'ai cherché ici et là, à partir de l'internet et j'ai écrit ce modèle: [\s]+id=\".*\"

Malheureusement il ne fonctionne pas comme je m'attends. Enfait, j'espérais que l'expression régulière attrape le id=" suivie par n'importe quel caractère répété pour n'importe quel nombre de fois et s'est terminé avec l' plus proche double quote; Pratiquement dans cet exemple, je m'attendais à attraper id="c1-id-8" et id="c1-id-9".
Mais au lieu de cela, le patron me fit la sous-chaîne id="c1-id-8">some</strong> <em id="c1-id-9", il trouve la première occurrence de id=" et la dernière occurrence d'une double caractère de devis.

Pourriez-vous me dire quel est le problème dans mon modèle, et comment résoudre le problème, s'il vous plaît?
Merci beaucoup

Pour l' ∞e fois, utiliser un parser. HTML n'est pas un langage régulier.

OriginalL'auteur Cesco | 2011-09-25