如果我有带有嵌入式 Python 函数的 C++ 代码,即它使用 Python 的 C API 来调用 Python 的解释器,我怎样才能让 Python 异常冒泡到 C++ 级别?
注意:这不是相反的问题(关于将 C++ 扩展异常传播到 Python 解释器)。
我正在编辑python文件,我在其中一个中有一个模式行,如下所示:
# vim: set foldmarker={{{,}}} foldlevel=0 foldmethod=marker
Run Code Online (Sandbox Code Playgroud)
当我打开文件时,foldmethod仍然设置为expr,但模式行中的其他两个设置已成功应用,并set modeline?显示modeline确实已设置.
我怀疑这种情况正在发生,因为插件在应用了模式后会覆盖设置,但我该如何检查是否是这种情况?
我在输出中找到了一个:map我要删除的映射,但我不知道映射的设置位置.
有没有办法找出映射设置的位置/时间,以便我可以删除它?
我正在尝试找到合适的python正则表达式来解决这个问题:
给定一个字符组成的字符串?,_以及o,发现长度的字符串n只包含?与o和至少一个 o.
这就是我想出来的,但它似乎没有起作用:
n = 3
r = re.compile("
(?=[o?]{"+str(n)+","+str(n)+"}) # first find a block of n characters that are either 'o' or '?'
[o?]*o[o?]* # then check if that block has at least one 'o'
, re.VERBOSE")
Run Code Online (Sandbox Code Playgroud)
我认为上面的问题是前瞻正确找到了一个潜在的块,但是[o?]*o[o?]*贪婪消耗的字符超出了第一部分找到的块的限制.我希望前瞻会限制后续表达式在前瞻匹配的范围内匹配,但我猜这不是它的工作方式.
我可能最终会以另一种方式做到这一点,因为对于正则表达式而言,这可能是最好的方法,但我想知道如何在单个正则表达式中执行此操作.