我试图在boost.python
代码中使用C++中的python正则表达式包re
。下面是在我的C++应用的示例代码片段:嵌入在C++中的boost python中的正则表达式
#include <boost/python.hpp>
Py_Initialize();
object main = import("__main__");
object main_namespace = main.attr("__dict__");
object ignored = exec(
"import re\n"
"def run():\n"
" rmatch = re.search(r'\d',r'hello3')\n"
" print rmatch\n"
"\n"
"print 'main module loaded'\n", main_namespace);
object run_func = main.attr("run");
run_func();
Py_Finalize();
正则表达式应该简单地拿起数字字符串hello3
英寸这个确切的代码行的作品在Python,但在嵌入式Python,rmatch
总是None
。
会有人能够提供一些见解,为什么?谢谢!
好问题。 Boost.Regex比Python的're'风格强大得多。 –
谢谢aleguna,该解决方案的工作!原因是我需要在嵌入式python函数中评估一些表达式,所以将该表达式传递给我的python函数并进行模式匹配和评估就更加方便了。 – user773494