我在文件中有一组匹配项,并希望找出哪些匹配项在评论中(/*
和*/
之间)。这是我可以用正则表达式做的事情吗?
我在考虑/\*.*MATCH.*\*/
,但这也符合情况/* comment */ MATCH /* some other comment */
。有没有正确的方法来做到这一点?
请注意,MATCH
可以在文件内多次出现(在注释内,而不在注释中)。
答案 0 :(得分:0)
\/\*(?:(?!\/\*|\*\/)[\s\S])*\bMATCH\b(?:(?!\/\*|\*\/)[\s\S])*\*\/
您可以在此处使用基于lookahead
的正则表达式。请参阅演示。
答案 1 :(得分:0)
答案 2 :(得分:0)
虽然previos先行答案有效,但它不适用于文件中的多个MATCH事件。因此,我找到了一个更好的非基于正则表达式的解决方案:
var lastCommentStartBefore = content.LastIndexOf("/*", match.Index);
var lastCommentEndBefore = content.LastIndexOf("*/", match.Index);
if (lastCommentEndBefore < lastCommentStartBefore)
// within comment