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