我想用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/