File indexing completed on 2026-03-28 08:27:59
0001
0002
0003
0004
0005
0006 #ifndef QSTRINGMATCHER_H
0007 #define QSTRINGMATCHER_H
0008
0009 #include <QtCore/qstring.h>
0010 #include <QtCore/qstringview.h>
0011
0012 QT_BEGIN_NAMESPACE
0013
0014
0015 class QStringMatcherPrivate;
0016
0017 class Q_CORE_EXPORT QStringMatcher
0018 {
0019 void updateSkipTable();
0020 public:
0021 QStringMatcher() = default;
0022 explicit QStringMatcher(const QString &pattern,
0023 Qt::CaseSensitivity cs = Qt::CaseSensitive);
0024 QStringMatcher(const QChar *uc, qsizetype len,
0025 Qt::CaseSensitivity cs = Qt::CaseSensitive)
0026 : QStringMatcher(QStringView(uc, len), cs)
0027 {}
0028 QStringMatcher(QStringView pattern,
0029 Qt::CaseSensitivity cs = Qt::CaseSensitive);
0030 QStringMatcher(const QStringMatcher &other);
0031 ~QStringMatcher();
0032
0033 QStringMatcher &operator=(const QStringMatcher &other);
0034
0035 void setPattern(const QString &pattern);
0036 void setCaseSensitivity(Qt::CaseSensitivity cs);
0037
0038 qsizetype indexIn(const QString &str, qsizetype from = 0) const
0039 { return indexIn(QStringView(str), from); }
0040 qsizetype indexIn(const QChar *str, qsizetype length, qsizetype from = 0) const
0041 { return indexIn(QStringView(str, length), from); }
0042 qsizetype indexIn(QStringView str, qsizetype from = 0) const;
0043 QString pattern() const;
0044 QStringView patternView() const noexcept
0045 { return q_sv; }
0046
0047 inline Qt::CaseSensitivity caseSensitivity() const { return q_cs; }
0048
0049 private:
0050 QStringMatcherPrivate *d_ptr = nullptr;
0051 Qt::CaseSensitivity q_cs = Qt::CaseSensitive;
0052 QString q_pattern;
0053 QStringView q_sv;
0054 uchar q_skiptable[256] = {};
0055 };
0056
0057 QT_END_NAMESPACE
0058
0059 #endif