2013-05-06 31 views
0

我想先在記事本++中測試我的正則表達式,然後讓它在盒子外面玩。表達本身的作品,但應該告訴不貪婪。雖然我知道如何在PHP中做到這一點,但我不知道如何在記事本中做到這一點。如何讓記事本++正則表達式不貪心?

我的表達:

(#([^\]]+))?stop_here\?([^\]]+) 

我將使用U-修飾符做到這一點在PHP這樣的:

preg_match_all("/(#([^\]]+))?stop_here\?([^\]]+)/U", $input_string, $result_array); 

回答

2

正如TwiNight寫道,你必須在每個量詞之後添加一個問號。

請注意,如果你想測試你的PHP正則表達式之前,讓時間箱子外面玩,最好的辦法是使用正則表達式測試儀爲PHP(例如:http://www.pagecolumn.com/tool/pregtest.htm或其他)。記事本++是非常有限的做到這一點。

請記住,非貪婪量詞很慢(因爲正則表達式引擎做了很多回溯)。如果可能,你應該避開它們。你也可以使用速度更快的佔有量詞(但不能使用notepad ++)。

+0

很好的瞭解性能,但在這種情況下它不是實時代碼,而是用來預先生成一些本地的東西,所以不用擔心;) – Hexodus 2013-05-07 14:27:35