Я пытаюсь использовать PCRE для соответствия регулярным выражениям. В некоторых случаях, однако, я хочу выполнить "потоковое" сопоставление. Из-за таких проблем, как взгляды на внешний вид, я не могу просто отказаться от согласованной части и соответствовать остальным. Есть ли какая-либо функция или алгоритм для правильного соответствия потока байтов, не сохраняя их все?
Есть ли какая-либо функция или алгоритм для правильного соответствия потока байтов, не сохраняя их все?
В общем, нет, по причинам, о которых вы упомянули. Но в некоторых случаях, да, вы могли бы.
Я не думаю, что вы можете сделать это с помощью PCRE.
Вы можете использовать Boost.Regex с частичным совпадением.
См. Также Можете ли вы использовать Boost.Regex для анализа потока?
abc|b
всегда будет давать только частичное совпадение сb
. Но еслиb
находится в конце потока, это должно быть полное совпадение. Это отличается от загрузки всего этого в буфер и полного соответствия.