- Qt 5.15
- Qt Core
- C++ Classes
- QStringMatcher
- Qt 5.15.18 Reference Documentation

# QStringMatcher Class

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

Header: | #include <QStringMatcher>
qmake: | QT += core

- List of all members, including inherited members

## Public Functions

| QStringMatcher(const QStringMatcher &other)
| QStringMatcher(QStringView pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive)
| QStringMatcher(const QChar *uc, int 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
int | indexIn(const QString &str, int from = 0) const
int | indexIn(const QChar *str, int length, int 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 QRegExp.

## Member Function Documentation

### QStringMatcher::QStringMatcher(const QStringMatcher &other)

Copies the other string matcher to this string matcher.

### 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, int 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.

This function was introduced in Qt 4.5.

### 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().

### int QStringMatcher::indexIn(const QString &str, int 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().

### int QStringMatcher::indexIn(const QChar *str, int length, int 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.

This function was introduced in Qt 4.5.

See also setPattern() and setCaseSensitivity().

### 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().