C正则表达式是否支持前瞻性?

时间:2012-05-02 17:58:45

标签: c regex

我正在尝试使用regex.h在c / c ++中使用正则表达式。 我正在尝试使用前瞻选项,例如:

(?=>#).*

为了在'#'之后提取字符串

由于某种原因,它无法找到任何匹配项。 regex.h是否支持lookahead / lookbehind?我可以使用另一个图书馆吗?

我在linux上使用regex.h。

2 个答案:

答案 0 :(得分:1)

我非常确定NSRegularExpression只是libicu的包装器,它支持前瞻。您的示例中有拼写错误,根据链接,正确的语法为(?=#).*

但在这种情况下似乎并不需要,为什么不只是#.*

答案 1 :(得分:1)

我怀疑你在谈论它真的是后视,而不是前瞻。那将是(?<=#).*,但为什么要这么复杂呢?为什么不像其他一些响应者建议的那样使用#(.*),并将所需的文本从捕获组中拉出来?

另外,你真的使用NSRegularExpression吗?考虑到它是Apple的iOS / MacOS开发人员框架中的Objective-C类,这似乎不太可能。