C相当于Python的正则表达式

时间:2016-03-10 19:01:39

标签: c regex

我正在尝试使用c来检查正则表达式,但我对c中的regex知之甚少,并且只能在Python中提出一个模式。

模式将是:STRING1.*?STRING2(STRING3)?STRING4

我在网上搜索,似乎没有好办法,特别是如果我希望它不区分大小写。

我想有一些图书馆,但我尽量避免这种情况(不能说明原因。只知道背后有非软件原因)

它适用于strstr吗?

2 个答案:

答案 0 :(得分:1)

在C中有一个用于正则表达式的posix库,您可能会感兴趣。这个答案可能会有所帮助

https://stackoverflow.com/questions/35887492/linux-c-replace-string-in-accordance-with-a-matching-rulesuch-as-any/35897946#35897946

另请参阅使用posix库

的示例

Posix regex example

除此之外,我不认为有更好的选择。至少我不知道

答案 1 :(得分:1)

可以使用常用的POSIX regexes,但POSIX正则表达式与Python等大多数其他实现方式有很大不同,并且缺少许多现代功能。

在C语言和许多其他语言中,通常使用PCRE or Perl Compatible Regular Expressions的一些实现。它将更接近Python开发人员的期望。它可以作为自己的C库使用,也可以作为part of a larger C library such as Gnome Lib使用。