2012-09-27 58 views
4

使用我選擇的Sublime 2的文本編輯器,我想搜索未註釋警報的代碼。所以我需要一個正則表達式來找到「alert」,但不是「// alert」或「// alert」。我不知道如何反轉,然後結合這兩個結果。 Sublime Text使用正則表達式的Boost語法。感謝您的任何幫助。正則表達式使用Sublime

+0

由於有可能比'\\'和'之間有一個空格多個alert'你可以使用支持可變寬度向前看符號工具正則表達式搜索在文本編輯器之外。 – Richard

回答

9

您可以搜索不// preceeded文本,從而

(?<!\/\/\s?)alert 

編輯: 如果編輯器不支持可變lookbehinds必須在不同的lookbehinds指定做好一切準備

(?<!\/\/\s)(?<!\/\/)alert 
+1

我想說這是有效的,但Sublime說遇到了無效的lookbehind斷言。 Boost –

+0

不支持變長lookbehind好吧,試試我的編輯! (有趣的是,它似乎我紅色的未來:)) – Gabber

+0

+1使用'\ s'而不是隻是空格字符。轉義'/'可能沒有必要。 –

6

試試這個:

(?<!//)(?<!//)alert 

Boost語法基於Pearl RegExp。因此應該支持負面後顧(?<!text)。在這個例子中,我使用了負面後視兩次(有和沒有空格),因爲後向後面的文本必須是固定的長度。

,你可以在這裏閱讀更多關於lookaraound功能在正則表達式:
http://www.regular-expressions.info/lookaround.html

+0

非常感謝。這非常出色 –