QStringMatcher类

QStringMatcher类包含一个可快速在Unicode字符串中匹配的字符序列。更多信息...

头部 #include <QStringMatcher>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

公共函数

QStringMatcher()
QStringMatcher(const QString &pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringMatcher(const QChar *uc, qsizetype length, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringMatcher(QStringView pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringMatcher(const QStringMatcher &other)
~QStringMatcher()
Qt::CaseSensitivitycaseSensitivity() const
qsizetypeindexIn(const QString &str, qsizetype from = 0) const
qsizetypeindexIn(const QChar *str, qsizetype length, qsizetype from = 0) const
qsizetypeindexIn(QStringView str, qsizetype from = 0) const
QStringpattern() const
(since 6.7) QStringViewpatternView() const
voidsetCaseSensitivity(Qt::CaseSensitivity cs)
voidsetPattern(const QString &pattern)
QStringMatcher &operator=(const QStringMatcher &other)

详细描述

当您有一系列QChar字符且希望反复与一些字符串(可能是在循环中)匹配,或者当您想在同一字符串中多次搜索相同的字符序列时,此类非常有用。如果重复匹配发生,则使用匹配器对象和indexIn()比使用QStringQString::indexOf()进行普通字符串匹配更快。如果只是进行一次字符串匹配,则本类不会提供任何优势。

使用您要搜索的QString构建QStringMatcher。然后对您想要搜索的QString调用indexIn()。

另请参阅QStringQByteArrayMatcherQRegularExpression

成员函数文档

[constexpr noexcept] QStringMatcher::QStringMatcher()

构造一个空字符串匹配器,无法与任何内容匹配。调用 setPattern() 以提供匹配的模式。

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

构造一个字符串匹配器,将搜索 pattern,具有 cs 的大小写敏感度。

调用 indexIn() 执行搜索。

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

构造一个字符串匹配器,将搜索由 uc 引用的模式,具有指定的 length 和由 cs 指定的大小写敏感度。

QStringMatcher::QStringMatcher(QStringView pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive)

构造一个字符串匹配器,将搜索 pattern,具有 cs 的大小写敏感度。

调用 indexIn() 执行搜索。

QStringMatcher::QStringMatcher(const QStringMatcher &other)

other 字符串匹配器复制到这个字符串匹配器中。

[noexcept] QStringMatcher::~QStringMatcher()

销毁字符串匹配器。

Qt::CaseSensitivity QStringMatcher::caseSensitivity() const

返回该字符串匹配器的大小写敏感度设置。

另请参阅setCaseSensitivity().

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

从字符位置 from(默认 0,即从第一个字符开始)搜索字符串 str 中的 pattern(),该模式是在构造函数中或在最近的 setPattern() 调用中设置的。返回 pattern() 在 str 中匹配的位置,如果没有找到匹配项,则返回 -1。

另请参阅setPattern() 和 setCaseSensitivity().

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

str(长度为 length)的起始位置搜索字符串,寻找在构造函数中或在最近的 setPattern() 调用中设置的 pattern()。返回 pattern() 在 str 中匹配的位置,如果没有找到匹配项,则返回 -1。

另请参阅setPattern() 和 setCaseSensitivity().

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

从字符位置 from(默认 0,即从第一个字符开始)搜索字符串 str 中的 pattern(),该模式是在构造函数中或在最近的 setPattern() 调用中设置的。返回 pattern() 在 str 中匹配的位置,如果没有找到匹配项,则返回 -1。

另请参阅setPattern() 和 setCaseSensitivity().

QString QStringMatcher::pattern() const

返回此字符串匹配器将要搜索的字符串模式。

另请参阅 setPattern().

[不抛出异常,自6.7版起] QStringView QStringMatcher::patternView() const

返回此字符串匹配器将要搜索的模式的字符串视图。

此函数首次在Qt 6.7版本中引入。

另请参阅 setPattern().

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

设置此字符串匹配器的区分大小写设置为cs

另请参阅 caseSensitivity(),setPattern()和indexIn

void QStringMatcher::setPattern(const QString &pattern)

将此字符串匹配器将要搜索的字符串设置为pattern

另请参阅 pattern(),setCaseSensitivity()和indexIn

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

other字符串匹配器赋值给此字符串匹配器。

© 2024 The Qt Company Ltd. 其中包含的文档贡献是各自所有者的版权。此处提供的文档根据GNU自由文档许可证版本1.3的条款进行许可,由自由软件基金会发布。Qt及其相关徽标是The Qt Company Ltd.在芬兰和/或世界其他国家的商标。所有其他商标均为各自所有者的财产。