QStringMatcher Class

The QStringMatcher class holds a sequence of characters that can be quickly matched in a Unicode string. More...

Header: #include <QStringMatcher>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Public Functions

QStringMatcher(const QStringMatcher &other)
QStringMatcher(QStringView pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringMatcher(const QChar *uc, qsizetype length, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringMatcher(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringMatcher()
QStringMatcher &operator=(const QStringMatcher &other)
~QStringMatcher()
Qt::CaseSensitivity caseSensitivity() const
qsizetype indexIn(const QString &str, qsizetype from = 0) const
qsizetype indexIn(const QChar *str, qsizetype length, qsizetype from = 0) const
qsizetype indexIn(QStringView str, qsizetype from = 0) const
QString pattern() const
void setCaseSensitivity(Qt::CaseSensitivity cs)
void setPattern(const QString &pattern)

Detailed Description

This class is useful when you have a sequence of QChars that you want to repeatedly match against some strings (perhaps in a loop), or when you want to search for the same sequence of characters multiple times in the same string. Using a matcher object and indexIn() is faster than matching a plain QString with QString::indexOf() if repeated matching takes place. This class offers no benefit if you are doing one-off string matches.

Create the QStringMatcher with the QString you want to search for. Then call indexIn() on the QString that you want to search.

See also QString, QByteArrayMatcher, and QRegularExpression.

Member Function Documentation

QStringMatcher::QStringMatcher(const QStringMatcher &other)

Copies the other string matcher to this string matcher.

[since 5.14] QStringMatcher::QStringMatcher(QStringView pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Constructs a string matcher that will search for pattern, with case sensitivity cs.

Call indexIn() to perform a search.

This function was introduced in Qt 5.14.

QStringMatcher::QStringMatcher(const QChar *uc, qsizetype length, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Constructs a string matcher that will search for the pattern referred to by uc with the given length and case sensitivity specified by cs.

QStringMatcher::QStringMatcher(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Constructs a string matcher that will search for pattern, with case sensitivity cs.

Call indexIn() to perform a search.

QStringMatcher::QStringMatcher()

Constructs an empty string matcher that won't match anything. Call setPattern() to give it a pattern to match.

QStringMatcher &QStringMatcher::operator=(const QStringMatcher &other)

Assigns the other string matcher to this string matcher.

QStringMatcher::~QStringMatcher()

Destroys the string matcher.

Qt::CaseSensitivity QStringMatcher::caseSensitivity() const

Returns the case sensitivity setting for this string matcher.

See also setCaseSensitivity().

qsizetype QStringMatcher::indexIn(const QString &str, qsizetype from = 0) const

Searches the string str from character position from (default 0, i.e. from the first character), for the string pattern() that was set in the constructor or in the most recent call to setPattern(). Returns the position where the pattern() matched in str, or -1 if no match was found.

See also setPattern() and setCaseSensitivity().

qsizetype QStringMatcher::indexIn(const QChar *str, qsizetype length, qsizetype from = 0) const

Searches the string starting at str (of length length) from character position from (default 0, i.e. from the first character), for the string pattern() that was set in the constructor or in the most recent call to setPattern(). Returns the position where the pattern() matched in str, or -1 if no match was found.

See also setPattern() and setCaseSensitivity().

[since 5.14] qsizetype QStringMatcher::indexIn(QStringView str, qsizetype from = 0) const

Searches the string str from character position from (default 0, i.e. from the first character), for the string pattern() that was set in the constructor or in the most recent call to setPattern(). Returns the position where the pattern() matched in str, or -1 if no match was found.

This function was introduced in Qt 5.14.

See also setPattern() and setCaseSensitivity().

QString QStringMatcher::pattern() const

Returns the string pattern that this string matcher will search for.

See also setPattern().

void QStringMatcher::setCaseSensitivity(Qt::CaseSensitivity cs)

Sets the case sensitivity setting of this string matcher to cs.

See also caseSensitivity(), setPattern(), and indexIn().

void QStringMatcher::setPattern(const QString &pattern)

Sets the string that this string matcher will search for to pattern.

See also pattern(), setCaseSensitivity(), and indexIn().