在C程序中使用sed等效项

时间:2009-03-09 19:35:15

标签: c string sed

我有一个字符串输入到我的程序表格:

CON * .CC

我希望它代表正则表达式con。*。cc。

如何在C程序中执行此操作?有什么像sed我可以使用吗?

5 个答案:

答案 0 :(得分:4)

我猜你真的只想要globbing而不是正则表达式。如果您在Linux下运行,则可以使用glob功能。我想有一个更便携的方式,但我不知道一个随便。

答案 1 :(得分:2)

您可以使用PCRE来匹配正则表达式。实际表达式可以存储为char数组(与任何其他字符串一样)。

答案 2 :(得分:1)

你想用这个正则表达式做什么?假设您要对代码中已有的一组字符串进行搜索,则需要使用正则表达式库。 C本身不支持正则表达式。查看gcc手册 - here

答案 3 :(得分:1)

This page描述< regex.h> header,它实现了对C的POSIX正则表达式支持。要使用它,你只需执行:

#include <sys/types.h>
#include <regex.h>

它们相当不错且易于使用,但正如@Chickencha在一个不同的答案中所说的那样,它看起来好像只是在使用文件名,而不是真正的正则表达式匹配。只是想到我会指出C确实支持正则表达式,因为没有人有。

答案 4 :(得分:0)

在程序中使用sed:

  1. fork()的
  2. 在子进程中设置stdin / stdout
  3. exec(sed s / X / Y /)在孩子(或任何你想要的操作)
  4. parent将数据推入sed,从sed读取数据
  5. 父母在完成时收获sed