它可能的 C++ 正则表达式评估器与 Lambda 像 Ruby 一样?
its possible c++ regex evaluator with lambdas like ruby?
我试图学习如何使用 lambda 表达式在 c++ 中编写正则表达式评估器
5;4 11;2 7;3
inputx.gsub(/(.*?);(.*?)n/) { ($1.to_i - $2.to_i ).to_s + "n" }
1 9 4
如果可能的话,我如何使用lambda表达式来做到这一点
请帮助我
肮脏的小秘密是所有语言的所有
正则表达式替换函数都维护一个内部字符串,通过该字符串从头开始构造
输出。
输出是匹配之间的子字符串加上格式化形式的匹配
字符串的串联。
然后将新字符串返回给调用方。
但是,如果您想提供一个回调函数来执行需要
语言结构的自己的格式化怎么办?
在所有正则表达式领域,只需坐在一个
regex_search循环中并根据每个匹配项在其中构建新输出
,就很容易模拟这一点。
好吧,就 C++(>=11) 而言,_you无法提供回调来
自动执行此操作!!
很伤心呵呵。。
(Boost::Regex 已将其内置到他们的正则表达式替换函数中,作为
和选项(回调函子)。
那么,你会怎么做呢?
你必须滚动你自己的通用 regex_replace() 类,该类采用一个
回调函数,它所做的只是它们所描述的。
幸运的是,有人已经使用所有的花里胡哨做到了这一点 的C++。
正则表达式替换为 C++11 中的回调?
享受!!
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 可组合的lambda/std::函数与std::可选
- 递归列出所有目录中的C++与Python与Ruby的性能
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何建立使用模板函数的lambda函数的尾部返回类型
- 如何将lambda作为模板类的成员函数参数
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 在 lambda 捕获中声明的变量的类型推导
- 我可以将调用类的"this"传递给 lambda 函数吗?
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 模板函数指针和lambda
- 两组使用lambda函数的大括号
- 使lambda不可复制/不可移动
- FLTK:按下哪个按钮 - 将数字传递给按钮的回调 (lambda)
- 尝试将lambda函数放在队列中时出现一般分配器错误(可能是与unique_ptr有关的错误)
- 将带有unique_ptr的可变 lambda 传递给 const&std::function
- AWS Lambda C++运行时权限被拒绝
- 捕获lambda中的std::数组
- 这 4 个 lambda 表达式之间有什么区别?
- 它可能的 C++ 正则表达式评估器与 Lambda 像 Ruby 一样?