上下文
我正在解析一些代码并希望在函数之前匹配 doxygen 注释。但是,因为我想匹配一个特定的函数名称,所以只获取前一个评论给我带来了问题。
当前方法
import re
function_re = re.compile(
r"\/\*\*(.+)\*\/\s*void\s+(\w+)\s*::\s*function_name\s*\(\s*\)\s*")
function_match = function_re.search(file_string)
if function_match:
function_doc_str = update_match.group(2)
当前方法的问题
当前的方法与早期函数中的 doxygen 相匹配,给我的结果是错误的 doxygen 注释。
问题
有没有一种方法可以使用 Python Regex 库在字符串中向后搜索?
看来我的问题是函数签名“void function()”的限制性更强(出现频率较低的部分)
可能更好的问题
是否有我缺少的更好(更简单)的方法?
请您参考如下方法:
最简单的方法就是只使用一个组,你不需要倒退...
(commentRegex)functionRegex
然后只提取第 1 组。您需要在多行模式下运行才能使其正常工作,我不懂 python,所以我帮不上什么忙。
前瞻断言也可以,但这种方式更简单。
