Skip to main content
 首页 » 编程设计

python之使用正则表达式(在 Python 中)向后搜索字符串

2025年05月04日23zfyouxi

上下文
我正在解析一些代码并希望在函数之前匹配 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,所以我帮不上什么忙。

前瞻断言也可以,但这种方式更简单。