2015-11-03 30 views
0

我在文件中有一組匹配項,並且想要找出哪些匹配項在註釋中(/**/之間)。這是我能用正則表達式做的事嗎?檢查正則表達式匹配是否在多行註釋中

我正在考慮/\*.*MATCH.*\*/,但是,這也符合/* comment */ MATCH /* some other comment */的情況。有沒有一個正確的方法來做到這一點?

請注意,MATCH可以在文件內部發生多次(在註釋中而不在註釋內)。

回答

0

雖然previos lookahead-answer有效,但它不適用於文件中出現多個MATCH事件。因此,我發現了一個更好的非基於正則表達式的解決方案:

var lastCommentStartBefore = content.LastIndexOf("/*", match.Index); 
var lastCommentEndBefore = content.LastIndexOf("*/", match.Index); 
if (lastCommentEndBefore < lastCommentStartBefore) 
    // within comment 
+1

請在問題中附帶相關代碼。這是一個很糟糕的做法,不提供所有相關的細節,然後發佈一個回答,其中包含一段不完整的代碼。 –

+0

我添加了「MATCH」可以多次出現的細節。我不知道應該在問題中添加哪些代碼。答案中的代碼不完整...... –

+0

不完整?你在寫什麼語言? 'match'變量有什麼類型?它是如何聲明的?它有什麼作用? –

0

這是因爲.*是貪婪的,並會匹配儘可能多的字符可能。相反,嘗試用懶惰匹配*?

\/\*[^\/\*]*?MATCH[^\/\*]*?(\*\/) 

這裏是一個fiddle

相關問題