Boost C++ 库

...世界上最受推崇和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

read_until (24 个重载中的第 14 个)

读取数据到 streambuf,直到其包含的数据的某部分匹配正则表达式。

template<
    typename SyncReadStream,
    typename Allocator,
    typename Traits>
std::size_t read_until(
    SyncReadStream & s,
    boost::asio::basic_streambuf< Allocator > & b,
    const boost::basic_regex< char, Traits > & expr,
    boost::system::error_code & ec);

此函数用于将数据读取到指定的 streambuf,直到 streambuf 的 get 区域包含与正则表达式匹配的数据。调用将阻塞,直到满足以下条件之一:

此操作通过零次或多次调用流的 read_some 函数来实现。如果 streambuf 的 get 区域已经包含与正则表达式匹配的数据,则该函数立即返回。

参数

s

从中读取数据的流。类型必须支持 SyncReadStream 概念。

b

一个 streambuf 对象,数据将被读取到其中。

expr

正则表达式。

ec

设置为指示发生了什么错误(如果有)。

返回值

streambuf 的 get 区域中字节数,直到并包括与正则表达式匹配的子字符串。如果发生错误,则返回 0。

说明

在成功的 read_until 操作之后,streambuf 可能包含超出与正则表达式匹配的数据之外的额外数据。应用程序通常会将该数据留在 streambuf 中,以供后续的 read_until 操作检查。


PrevUpHomeNext