gpt4 book ai didi

c++ - 如何在 C++ 中使用或模拟 lookbehind 断言?

转载 作者:搜寻专家 更新时间:2023-10-31 01:52:18 26 4
gpt4 key购买 nike

我希望执行搜索,其中字符串 (bar) 前面没有紧跟两个字符串 (foo) 或 (boo) 中的任何一个

例如

foo=bar不应该匹配

foo=baz bar应该匹配

bar应该匹配

boo=bar不应该匹配

我认为正则表达式背后的外观对此来说是完美的。但是,当我尝试使用 (?<! 时出现未处理的异常从 MSVC++ 看后面的内容

断言是否受支持?它在语法上有所不同吗?或者有人可以帮我写这个正则表达式或模拟行为吗?

最佳答案

考虑使用 Boost.Regex 或 Boost.Xpressive。 MSVC++ 10 的正则表达式实现并不完整,而 Boost 的(对于 Regex 和 Xpressive)是。两者各有优缺点。

虽然 Xpressive 由于编译时正则表达式编译而速度更快,并且提供了更好的正则表达式语法检查,但它往往会创建很多符号,因此您需要增加几兆字节的调试信息,最少。

正则表达式速度很快,并且不需要表达性地使用运算符来构造正则表达式。但是,它确实需要在库中进行链接。

存在其他可以执行 perl 正则表达式的 C++ 正则表达式引擎,但使用 Boost 非常轻松,无论我用它做什么,我都没有遇到任何问题。

关于c++ - 如何在 C++ 中使用或模拟 lookbehind 断言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12851509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com