在C中执行正则表达式

时间:2010-11-20 13:52:58

标签: c regex

我想在C中执行正则表达式。假设我有以下文字:

  thecapital([x], implies(maincity(y),x))

程序必须输出如下:

   implies(maincity(y),x))

任何人都可以建议我该怎么办?

1 个答案:

答案 0 :(得分:4)

要将输入字符串thecapital([x], implies(maincity(y),x))转换为输出字符串implies(maincity(y),x)),您可以使用以下简单函数:

const char *
transform(const char *expr) {
  return expr + 16;
}

它不使用正则表达式,但另一方面它快速闪电。或许你没有清楚地提出你的问题。例如,您没有用语言描述应该进行哪些转换。举一个例子是不够的。

那么你真正想做什么:?

  • 跳过输入字符串的前16个字符
  • 返回第一个空格字符后的所有内容
  • 返回最后一个空格字符后的所有内容
  • 以第二个i
  • 开头,返回参数的后缀
  • 返回"implies(maincity(y),x))"
  • 将第二个参数返回括号中的术语,后跟一个额外的右括号

对于您的一个示例,我的简单建议功能满足所有这些要求。但是当给出任何其他意见时,它当然会无可救药地失败。