Skip to main content
 首页 » 编程设计

python之正则表达式匹配包含特定单词的整个多行注释

2024年10月17日30mayingbao

我一直在尝试设计这个正则表达式,但在我的一生中,如果 */在特殊词之前被击中,我无法让它不匹配。

我试图匹配包含特殊词的整个多行注释。我尝试了负面前瞻/后视,但我不知道如何正确地做到这一点。

这是我目前所拥有的: (?s)(/\*.+?special.+?\*/)

我是否接近或严重偏离基地?我尝试包含 (?!\*/) 但未成功。

https://regex101.com/r/mD1nJ2/3

编辑:我删除了正则表达式的一些冗余部分。

请您参考如下方法:

你并没有完全偏离基地:

/\*                 # match /* 
(?:(?!\*/)[\s\S])+? # match anything lazily, do not overrun */ 
special             # match special 
[\s\S]+?            # match anything lazily afterwards 
\*/                 # match the closing */ 

该技术称为调和贪婪 token ,请参阅 a demo on regex101.com (注意修饰符,例如 x 表示详细模式!)。


您可能想尝试另一种艰难的方法:分析您的文档,grep 注释(使用例如 BeautifulSoup)并对它们运行字符串函数( if "special"in comment...).