我想用C语言执行正则表达式。假设我有如下文本:

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

程序必须输出如下内容:
   implies(maincity(y),x))

有人能建议我怎么做吗?

最佳答案

要将输入字符串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))"
将第二个参数返回到括号中的术语,后跟一个额外的右括号
对于您的一个示例,我的简单建议函数满足所有这些要求。当然,如果有其他的投入,它会毫无希望地失败。

关于c - 在C中执行正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4233044/

10-12 14:25