gpt4 book ai didi

多个缓冲区上的 C++ 正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:43 25 4
gpt4 key购买 nike

我在使用正则表达式时遇到了一些问题,我希望它能将多个(好吧,在本例中为一个)缓冲区计为一个字符串。

假设我下载了一个文件,我想搜索一个特定的字符串,比方说“foobar”。我不知道文件大小,我不想为 html 代码分配几兆字节的大块缓冲区。

所以,我的想法是,我有这个小缓冲区,可以说是 64 字节。假设我们写了一个文件 block ,char 数组看起来像这样

.............foobar.............

一切似乎都很好,但如果数组是这样的

.............................foo

而在另一个写入 block 时,它变成了

bar.............................

这个问题是不言自明的。正则表达式不会在单独的检查中找到字符串。我们可以分配大缓冲区大小来一次包含页面,但这是一种巨大的浪费。

所以,我有了一个想法——拆分缓冲区。假设在第一次写入时我们得到这些缓冲区

 ............................foo
------------------------------- // this one is empty

然后,在第二次写入之后我们得到这个

 ............................foo
bar............................

现在,如果有一个正则表达式函数可以将这些缓冲区计为一个,那就太好了。我可以简单地保持交替缓冲区并拉动我想要的字符串,而无需在 ram 中分配大量空间。

有没有可以做到这一点的 C++ 正则表达式库?有什么想法吗?

最佳答案

std::regex_match (自 C++11 起可用,请参阅标题 <regex>)有一个接口(interface),它采用一对迭代器来分隔要搜索的“字符串”。您可以创建自己的迭代器类,它可以简单地按顺序迭代缓冲区集合。

关于多个缓冲区上的 C++ 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16622977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com