Sur cette page

QStaticLatin1StringMatcher Class

template <Qt::CaseSensitivity CS, size_t N> class QStaticLatin1StringMatcher

La classe `QStaticLatin1StringMatcher` est une version compilée de ` QLatin1StringMatcher`. En savoir plus…

En-tête : #include <QStaticLatin1StringMatcher>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Depuis : Qt 6.7

Fonctions publiques

qsizetype indexIn(QLatin1StringView haystack, qsizetype from = 0) const
qsizetype indexIn(QStringView haystack, qsizetype from = 0) const
(since 6.7) auto qMakeStaticCaseInsensitiveLatin1StringMatcher(const char (&patternToMatch)[N])
(since 6.7) auto qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&patternToMatch)[N])

Description détaillée

QStaticLatin1StringMatcher<CS, N> est une classe de modèles où CS correspond à l’ Qt::CaseSensitivity à utiliser pour la mise en correspondance et N à la longueur du motif à rechercher (y compris le caractère de fin de chaîne pour les littéraux de chaîne).

Cette classe est utile lorsque votre code doit rechercher efficacement, dans des chaînes Latin-1, une sous-chaîne connue au moment de la compilation. C'est courant, par exemple, dans les analyseurs syntaxiques. L'utilisation de la méthode indexIn() d'un objet « matcher » est plus rapide que l'utilisation de la méthode indexOf() de la chaîne dans laquelle vous effectuez la recherche, en particulier lorsque la chaîne à trouver fait l'objet de recherches répétées ou se trouve au sein d'une longue chaîne Latin-1 susceptible de contenir de nombreuses correspondances avec des préfixes de la sous-chaîne recherchée.

Contrairement à ` QLatin1StringMatcher`, cette classe calcule la représentation interne au moment de la compilation; son utilisation peut donc s’avérer avantageuse même si vous n’effectuez que des correspondances ponctuelles sur des chaînes Latin-1.

Créez l’objet `QStaticLatin1StringMatcher` en appelant ` qMakeStaticCaseSensitiveLatin1StringMatcher()` ou ` qMakeStaticCaseInsensitiveLatin1StringMatcher()`, en passant la chaîne Latin-1 à rechercher sous forme de littéral de chaîne C. Stockez la valeur de retour de cette fonction dans une variable de type ` static constexpr auto `, afin de ne pas avoir à passer explicitement le paramètre de modèle ` N `.

Appelez ensuite la méthode ` indexIn()` sur le ` QLatin1StringView ` dans lequel vous souhaitez effectuer la recherche, exactement comme avec ` QLatin1StringMatcher`.

Cette classe étant conçue pour effectuer tous les calculs préalables au moment de la compilation, elle ne propose pas les méthodes setPattern() ni setCaseSensitivity().

Remarque : le système d’exploitationINTEGRITY n’est actuellement pas pris en charge.

Voir également QLatin1StringMatcher, QStaticByteArrayMatcher et QByteArrayMatcher.

Documentation des fonctions membres

[constexpr noexcept] qsizetype QStaticLatin1StringMatcher::indexIn(QLatin1StringView haystack, qsizetype from = 0) const

[constexpr noexcept] qsizetype QStaticLatin1StringMatcher::indexIn(QStringView haystack, qsizetype from = 0) const

Recherche dans le fichier QLatin1StringView haystack , à partir de la position en octets from (valeur par défaut : 0, c'est-à-dire à partir du premier octet), le motif QLatin1StringView pattern() défini dans le constructeur. La distinction entre majuscules et minuscules est celle définie dans le constructeur.

Renvoie la position où le motif pattern() a été trouvé dans haystack, ou -1 si aucune correspondance n’a été trouvée.

Éléments non membres associés

[constexpr noexcept, since 6.7] template <size_t N> auto qMakeStaticCaseInsensitiveLatin1StringMatcher(const char (&patternToMatch)[N])

Renvoie un ` QStaticLatin1StringMatcher ` contenant l’ N e correcte, déterminée automatiquement à partir de l’ patternToMatch e fournie, sans distinction entre majuscules et minuscules.

Pour tirer pleinement parti de cette fonction, affectez le résultat à une variable de type ` static constexpr auto ` :

static constexpr auto matcher = qMakeStaticCaseInsensitiveLatin1StringMatcher("needle");

Cette fonction a été introduite dans Qt 6.7.

[constexpr noexcept, since 6.7] template <size_t N> auto qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&patternToMatch)[N])

Renvoie une variable de type ` QStaticLatin1StringMatcher ` contenant l'N s correctes, déterminées automatiquement à partir de l'patternToMatch fournie, en tenant compte de la casse.

Pour tirer pleinement parti de cette fonction, affectez le résultat à une variable de type ` static constexpr auto ` :

static constexpr auto matcher = qMakeStaticCaseSensitiveLatin1StringMatcher("needle");

Cette fonction a été introduite dans Qt 6.7.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.