2015-05-09 79 views
1

我是新來的正則表達式。我已經嘗試了幾個網站來幫助我構建正則表達式,但即使在最簡單的正則表達式中,我也只是失敗了。正則表達式選擇括號內的文本(和括號內)

這次,我只是想構建一個正則表達式來幫助我在Notepad ++上搜索和替換字符串。我想刪除所有以[開頭並以]結尾的字符,並用空字符串替換它們。所以基本上我想找到括號內的所有字符,並將它們全部擦除。

所以,如果我有這樣的字符串:

[2015-05-08] ERROR [US Channel Store]: An exception occurred at index.php.

我希望它變成:

ERROR : An exception occurred at index.php.

通過與正則表達式搜索文檔,並與空字符串替換。

我最好的嘗試使正則表達式是這樣的:\[.*\]。 (該網站說,完整的正則表達式實際上將是/\[.*\]/g

但在預覽中,我發現正則表達式的結果實際上選擇了整條線。

有人可以指出錯誤的地方嗎?你能給我正確的正則表達式嗎?關於我的錯誤思考正則表達式的小解釋將非常感謝,以幫助我學習。謝謝!

回答

1

讓您的正則非貪婪(懶惰):

/\[.*?\]/g 

或者最好使用否定:

/\[[^]]*\]/g 
+1

'/\[.* ?\]/g'那真的有用!原來如此。我需要更多地瞭解這個貪婪vs非貪婪的東西。謝謝! –

+0

不客氣,很高興幫助。 – anubhava

+1

對不起。我知道。但是,當我嘗試將其標記爲已接受時,該網站稱「您可以在x分鐘後執行此操作」。好吧,我說。所以爲了打發時間,我做了我的工作。然後最後我忘了回到這裏來檢查它。有時我真的很討厭這裏的系統,這使得我在問題發佈後的10分鐘內將答案標記爲接受。再一次,謝謝! –

0

你應該試試這個表達式:/\[[^]]+\]/g

相關問題