Php 如何告诉记事本++;正则表达式是非贪婪的吗?

Php 如何告诉记事本++;正则表达式是非贪婪的吗?,php,regex,notepad++,Php,Regex,Notepad++,我想先在notepad++中测试我的正则表达式,然后再让它们在盒子外播放。表达式本身是有效的,但应该告诉它是非贪婪的。虽然我知道如何在PHP中做到这一点,但我不知道如何在记事本中做到这一点 我的表情是: (#([^\]]+)?停在这里\?([^\]]+) 我会在PHP中使用u形修饰符这样做: preg#U match_all(“/(#)([^\]]+)?在此处停止\?([^\]]+)/U“,$input_string,$result_数组); 通过在量词?、+或*之后添加一个?,它们变得不贪婪

我想先在notepad++中测试我的正则表达式,然后再让它们在盒子外播放。表达式本身是有效的,但应该告诉它是非贪婪的。虽然我知道如何在PHP中做到这一点,但我不知道如何在记事本中做到这一点

我的表情是:

(#([^\]]+)?停在这里\?([^\]]+)
我会在PHP中使用u形修饰符这样做:

preg#U match_all(“/(#)([^\]]+)?在此处停止\?([^\]]+)/U“,$input_string,$result_数组);

通过在量词
+
*
之后添加一个
,它们变得不贪婪:

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

正如TwiNight所写,您必须在每个量词后添加一个问号

请注意,如果您想在让em在框外播放之前测试php正则表达式,最好的方法是使用regex testerfor php(例如:或其他)。Notepad++在这方面非常有限


请记住,非贪婪量词的速度很慢(因为正则表达式引擎执行许多回溯)。如果可能的话,你应该避开它们。您也可以使用更快的所有格量词(但不能使用记事本++)

了解性能很好,但在本例中,它不是实时代码,而是用于在本地预生成某些内容,所以不用担心;)