QByteArrayMatcher Class

QByteArrayMatcher 类用于保存可在字节数组中快速匹配的字节序列。更多

头文件: #include <QByteArrayMatcher>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

公共函数

QByteArrayMatcher()
QByteArrayMatcher(const QByteArray &pattern)
QByteArrayMatcher(const char *pattern, qsizetype length = -1)
(since 6.3) QByteArrayMatcher(QByteArrayView pattern)
QByteArrayMatcher(const QByteArrayMatcher &other)
~QByteArrayMatcher()
qsizetype indexIn(const char *str, qsizetype len, qsizetype from = 0) const
(since 6.3) qsizetype indexIn(QByteArrayView data, qsizetype from = 0) const
QByteArray pattern() const
void setPattern(const QByteArray &pattern)
QByteArrayMatcher &operator=(const QByteArrayMatcher &other)

详细说明

该类在以下情况下非常有用:当你有一个字节序列,想反复与一些字节数组匹配时(也许是在一个循环中),或者当你想在同一个字节数组中多次搜索相同的字节序列时。如果重复匹配,使用匹配器对象和indexIn() 比使用QByteArray::indexOf() 匹配普通QByteArray 更快。如果进行一次性字节数组匹配,该类则没有任何好处。

使用要搜索的QByteArray 创建 QByteArrayMatcher。然后在要搜索的QByteArray 上调用indexIn() 。

另请参阅 QByteArrayQStringMatcher

成员函数文档

QByteArrayMatcher::QByteArrayMatcher()

构造一个空字节数组匹配器,它不会匹配任何内容。调用setPattern() 给它一个匹配模式。

[explicit] QByteArrayMatcher::QByteArrayMatcher(const QByteArray &pattern)

构造一个字节数组匹配器,搜索pattern 。调用indexIn() 执行搜索。

[explicit] QByteArrayMatcher::QByteArrayMatcher(const char *pattern, qsizetype length = -1)

pattern 构造字节数组匹配器。pattern 有给定的length 。调用indexIn() 执行搜索。

注意: 在使用该对象时,pattern 所引用的数据必须保持有效。

[explicit, since 6.3] QByteArrayMatcher::QByteArrayMatcher(QByteArrayView pattern)

这是一个重载函数。

构造一个字节数组匹配器,搜索pattern 。调用indexIn() 执行搜索。

注意: 在使用此对象时,pattern 所引用的数据必须保持有效。

此函数在 Qt 6.3 中引入。

QByteArrayMatcher::QByteArrayMatcher(const QByteArrayMatcher &other)

other 字节数组匹配器复制到此字节数组匹配器。

[noexcept] QByteArrayMatcher::~QByteArrayMatcher()

销毁字节数组匹配器。

qsizetype QByteArrayMatcher::indexIn(const char *str, qsizetype len, qsizetype from = 0) const

在长度为len 的字符串str 中,从字节位置from (默认为 0,即从第一个字节开始)搜索构造函数或最近一次调用setPattern() 时设置的字节数组pattern()。返回pattern() 在str 中匹配的位置,如果没有找到匹配,则返回-1。

[since 6.3] qsizetype QByteArrayMatcher::indexIn(QByteArrayView data, qsizetype from = 0) const

这是一个重载函数。

从字节位置from (默认为 0,即从第一个字节开始)开始,搜索字节数组data ,以查找在构造函数中或最近一次调用setPattern() 时设置的字节数组pattern()。返回pattern() 在data 中匹配的位置,如果没有找到匹配,则返回-1。

此函数在 Qt 6.3 中引入。

QByteArray QByteArrayMatcher::pattern() const

返回字节数组匹配器要搜索的字节数组模式。

另请参阅 setPattern()。

void QByteArrayMatcher::setPattern(const QByteArray &pattern)

将字节数组匹配器搜索的字节数组设置为pattern

另请参阅 pattern() 和indexIn()。

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

other 字节数组匹配器分配给此字节数组匹配器。

© 2025 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.