Альтернатива Regcomp для сопоставления шаблонов в потоке не ASCII - PullRequest
1 голос
/ 07 марта 2012

До сих пор я использовал в своих программах regcomp для использования регулярных выражений в регулярных строках.

Теперь мне нужно найти конкретные шаблоны байтов в двоичных потоках, отличных от ASCII: я понимаю, что regcomp не может работать в этом контексте.

На практике мне хотелось бы что-то, что позволило бы мне определить, скажем, 3-байтовый шаблон, возможно, с использованием шестнадцатеричной записи:

\x27\x87\xFE

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

Если вам нужна библиотека регулярных выражений, которая работает на UTF-8, вы должны использовать превосходную библиотеку Филиппа Хейзела PCRE .

0 голосов
/ 19 марта 2012

То, что я обнаружил вкратце:

  • regexp.h не интерпретирует входные строки.Это означает: вы можете легко передавать произвольные байты в regcomp, например,

    char buffer [10] = "\ x01abcd \ x03";

    Но когда дело доходит до той же строки вышезакодированный в ASCII, regexp.h не будет интерпретировать его так, как это делает компилятор C.

  • С PCRE лучше работать при разборе сетевого содержимого.Спасибо трик

...