Regcomp备选用于匹配非ASCII流中的模式

时间:2012-03-06 21:39:45

标签: c regex linux unicode gnu

到目前为止,我一直在我的程序regcomp中使用常规字符串上的正则表达式。

现在,我需要在非ASCII二进制流中找到特定的字节模式:我理解regcomp在这种情况下无法工作。

实际上,我想要一些让我定义的东西 - 比方说 - 一个3字节的模式,可能使用十六进制表示法:

\x27\x87\xFE

谢谢

2 个答案:

答案 0 :(得分:2)

如果您需要一个适用于UTF-8的正则表达式库,则应使用Phillip Hazel’s excellent PCRE library

答案 1 :(得分:0)

我简单地发现了:

  • regexp.h不解释输入字符串。这意味着: 您可以轻松地将任意字节传递给regcomp,如此

    char buffer [10] =“\ x01abcd \ x03”;

    但是当传递上面用ASCII编码的相同字符串时,regexp.h不会像C编译器那样解释它。

  • 解析网络内容时,PCRE更适合使用。谢谢tchrist