8

在Visual Studio 2010中,如何搜索不在單行註釋中的文本?例如,如何找到 「淺」:在Visual Studio 2010中,如何搜索不在單行註釋中的文本?

foo bar bas 

但不是在

foo bar // bas 

需要注意的是,應該找到行:

foo/bar/bas 

(編輯),它不應該找line:

foo // bar bas 
+0

好吧,所以我問了這個問題,所以我可以參考我自己的答案。不幸的是,我必須等待8個小時才能回答我自己的問題。 Visual Studio似乎沒有典型的先行後視構造。它確實有一個類似的零寬度否定斷言。語法是〜(x),這意味着該模式中的模式在此時不匹配x。使用這個構造,我想出了這個: ^(。〜(//))* bas 它工作得很好,但不會匹配行中前兩個字符的行。一個要修復的版本是: ^〜(//)(。〜(//))* bas – Tony

+0

您問了一個問題只是爲了自己回答嗎? – iandotkelly

+0

那麼,您是否發佈了該評論,因爲我已經回答了您的問題? :) – Tony

回答

6

好的,所以我問了這個問題,所以我可以回顧我自己的答案。

Visual Studio似乎沒有典型的預見性,後視構造。它確實有一個類似的零寬度否定斷言。語法是〜(x),這意味着該模式中的模式在此時不匹配x。使用這個構造,我想出了這個:^(.~(//))*bas它工作得很好,但不會排除//是行上前兩個字符的行。一個要修復的版本是:^~(//)(.~(//))*bas

6

在Visual Studio查找撥號OG,請嘗試使用正則表達式(請務必選擇使用:正則表達式在查找選項):

~(//[.:b]*)<bas> 

這應該發現其不被//前面的字bas的所有地方。

請注意,Visual Studio正則表達式語法與傳統語法有點不同。你可以找到參考HERE

+0

這在示例中不起作用:foo // bar/bas bas在註釋中,所以不應找到。謝謝你的回答,但是,鏈接。此外,< and >字邊界可能不是必需的,雖然它取決於你想要的。 – Tony

+5

對於VS2012用戶:「Visual Studio 2012使用.NET Framework正則表達式來查找和替換文本。在Visual Studio 2010及更早版本中,Visual Studio在」查找和替換「窗口中使用了自定義正則表達式語法」。資料來源:[在Visual Studio中使用正則表達式](http://msdn.microsoft.com/en-us/library/2k3te2cs(v = vs.110).aspx) –

相關問題