我可以在C程序中使用模式匹配吗?

时间:2016-08-04 11:12:00

标签: c linux string

我是C编程的新手。是否可以匹配C字符串中的模式,就像任何内置函数一样?

我正在使用Red Hat Linux,我想检查字符串是以abc:还是def:开头,后跟10位数字@字符。类似于:(abc|def):([0-9]{10})@([A-Za-z0-9]*)

是否有任何C内置函数可用于检查此模式匹配。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以在linux中使用POSIX正则表达式匹配。有关详细信息,请参阅man 3 regex。 如果您正在寻找一个快速,安全和线程化的库,您可以使用Google提供的re2库以及预编译的正则表达式。 (https://github.com/google/re2

答案 1 :(得分:0)

Linux和POSIX具有regex(3)个功能。你需要"编译" - 首先使用regcomp转换你的正则表达式字符串。

在一些简单的情况下,您也可以使用其他字符串函数,例如strstrstrchrsscanf(3)%n格式说明符可能很方便,知道如何使用你扫描了多少字节。)

您还可以考虑一些lexing实用程序,可能使用flex生成能够识别正则表达式的标记生成器。

相关问题