Je suis d'accord avec les autres. Drupal 6.x et plus utilisent regex pour faire beaucoup de travail sur les données HTML. Il casse rapidement si vous créez des pages de 64 Ko ou plus. Donc, en utilisant un DOM ou juste indexOf()
comme vous l'avez fait est une meilleure solution beaucoup plus rapide. Maintenant, pour ceux qui sont intéressés à en savoir plus sur regex, Qt utilise l'implémentation Perl. Cela signifie que vous pouvez utiliser l'opérateur paresseux. Votre regex deviendrait: (. Bien que si vous avez un seul, le point d'interrogation et le signe plus ne sont pas nécessaires)
(<pre>.*?</pre>)+
pour obtenir chacun des < bloc pré > dans votre code Notez qu'aucun délimiteurs à le début et la fin de l'expression régulière sont requis ici.
QRegExp re("(<pre>.*?</pre>)+", Qt::CaseInsensitive);
re.indexIn(html_input);
QStringList list = re.capturedTexts();
liste maintenant doit avoir une étiquette pré < > ou plus.
Je ne suis pas d'accord. Si vous connaissez bien la structure du fichier, trouver du contenu dans celui-ci ne devrait pas poser de problème avec l'expression régulière. –
@PredragManojlovic: Et si la structure du fichier change légèrement? Et s'il y a des caractères échappés? – SLaks
J'étais très précis: "Si vous connaissez bien la structure du fichier". Ce qui signifie que vous l'avez généré ou que le système qui le génère est cohérent. –