求查找算法。每次从文件读取固定长度的数据,怎么连续查找一个大文件的内容

求查找算法。每次从文件读取固定长度的数据,如何连续查找一个大文件的内容?
每次从文件读取固定长度的数据,如何连续查找一个大文件的内容?

要使用正则表达式查找文件中匹配的内容
例如每次读取2KB的数据到内存BUF,

while(ReadData(BUF))
{
   RegExMatch(BUF);//正则表达式匹配
}


因为查找的内容可能分布在两次读的数据BUF1和BUF2各一部分
这样就会导致这个内容没有查找到,
请问怎样设计一个算法来有效进行查找,以解决上述的问题?

------解决方案--------------------
例如你的匹配最大字符是 10
那就读取 1--2000 
         1990 - 3990 留一定的空间给末位字符