+是量词,表示匹配1到多次,默认是贪婪匹配,在量词后面紧跟?表示非贪婪匹配。 /\{\{((?:.|\n)+?)\}\}/中\{\{和\}\}匹配{{和}};(?:.|\n)中,.匹配换行符以外的字符,因为有的系统的换行符是\r\n(thanks @小皇帝James ),所以.|\n匹配除了\r之外的任意字符,?:表示非捕获型括号,所以整个的就是匹配任意一个非\r的字符;(?:.|\n)+?匹配至少一个字符;所以整个表达式匹配首先是{{,然后至少一个非\r的字符,最后是}}。
+
是量词,表示匹配1到多次,默认是贪婪匹配,在量词后面紧跟?
表示非贪婪匹配。/\{\{((?:.|\n)+?)\}\}/
中\{\{
和\}\}
匹配{{
和}}
;(?:.|\n)
中,.
匹配换行符以外的字符,因为有的系统的换行符是\r\n
(thanks @小皇帝James ),所以.|\n
匹配除了\r
之外的任意字符,?:
表示非捕获型括号,所以整个的就是匹配任意一个非\r
的字符;(?:.|\n)+?
匹配至少一个字符;所以整个表达式匹配首先是
{{
,然后至少一个非\r的字符
,最后是}}
。