我在文件中有一組匹配項,並且想要找出哪些匹配項在註釋中(/*
和*/
之間)。這是我能用正則表達式做的事嗎?檢查正則表達式匹配是否在多行註釋中
我正在考慮/\*.*MATCH.*\*/
,但是,這也符合/* comment */ MATCH /* some other comment */
的情況。有沒有一個正確的方法來做到這一點?
請注意,MATCH
可以在文件內部發生多次(在註釋中而不在註釋內)。
我在文件中有一組匹配項,並且想要找出哪些匹配項在註釋中(/*
和*/
之間)。這是我能用正則表達式做的事嗎?檢查正則表達式匹配是否在多行註釋中
我正在考慮/\*.*MATCH.*\*/
,但是,這也符合/* comment */ MATCH /* some other comment */
的情況。有沒有一個正確的方法來做到這一點?
請注意,MATCH
可以在文件內部發生多次(在註釋中而不在註釋內)。
雖然previos lookahead-answer有效,但它不適用於文件中出現多個MATCH事件。因此,我發現了一個更好的非基於正則表達式的解決方案:
var lastCommentStartBefore = content.LastIndexOf("/*", match.Index);
var lastCommentEndBefore = content.LastIndexOf("*/", match.Index);
if (lastCommentEndBefore < lastCommentStartBefore)
// within comment
\/\*(?:(?!\/\*|\*\/)[\s\S])*\bMATCH\b(?:(?!\/\*|\*\/)[\s\S])*\*\/
您可以使用基於lookahead
正則表達式here.See演示。
請在問題中附帶相關代碼。這是一個很糟糕的做法,不提供所有相關的細節,然後發佈一個回答,其中包含一段不完整的代碼。 –
我添加了「MATCH」可以多次出現的細節。我不知道應該在問題中添加哪些代碼。答案中的代碼不完整...... –
不完整?你在寫什麼語言? 'match'變量有什麼類型?它是如何聲明的?它有什麼作用? –