我一直在尝试设计这个正则表达式但是对于我的生活,如果* /在特殊词之前被击中,我就无法得到它。
我试图匹配整个多行注释,只要它包含一个特殊的单词。我尝试过负面的前瞻/后退,但我无法弄清楚如何正确地做到这一点。
这是我到目前为止所做的:
(?s)(/\*.+?special.+?\*/)
我是靠近基地还是可怕的基地?我尝试包括(?!\*/)
失败了。
https://regex101.com/r/mD1nJ2/3
编辑:我删除了正则表达式的一些冗余部分。
答案 0 :(得分:2)
你并非完全偏离基地:
/\* # match /*
(?:(?!\*/)[\s\S])+? # match anything lazily, do not overrun */
special # match special
[\s\S]+? # match anything lazily afterwards
\*/ # match the closing */
该技术称为驯化贪婪令牌,请参阅a demo on regex101.com(请注意修饰符,例如x
以获取详细模式!)。
BeautifulSoup
)并对它们运行字符串函数(if "special" in comment...
)。