在让它们在盒子外播放之前,我想在记事本++中测试我的正则表达式。表达式本身有效,但应该告诉它是非贪婪的。虽然我知道如何在 PHP 中执行此操作,但我不知道如何在记事本中执行此操作。
我的表达:
(#([^\]]+))?stop_here\?([^\]]+)
我会使用 u-modifier 在 PHP 中执行此操作:
preg_match_all("/(#([^\]]+))?stop_here\?([^\]]+)/U", $input_string, $result_array);
正如 TwiNight 所写,您必须在每个量词后添加一个问号。
请注意,如果您想在让 em 开箱即用之前测试您的 php 正则表达式,最好的方法是使用PHP的正则表达式测试器(例如: http: //www.pagecolumn.com/tool/pregtest.htm或其他)。Notepad++ 非常有限。
请记住,非贪婪量词很慢(因为正则表达式引擎会执行许多回溯)。你应该尽可能避免它们。您也可以使用更快的所有格量词(但不能使用记事本++)。