我正在尝试做一个PHP正则表达式,但我找不到正确的方法......
想象一下,我有这个字符串:"你好,我{{name is Peter}}和{{我想吃巧克力}}"
我想在{{和}}之间取部分
但是,如果我使用 preg_match("/\{\{(.*)?\}\}/", $string)
它返回给我一个字符串"{{name is Peter}}和{{我想吃巧克力}}"
我怎么能说出}}的第一个巧合?
谢谢
Jen*_*ens 26
使用
"/{{(.*?)}}/"
Run Code Online (Sandbox Code Playgroud)
表达式".*"是贪婪的,尽可能多地使用字符.如果你使用的".*?"是尽可能少的字符,那就是它停在第一组右括号中.
默认情况下,PCRE功能贪婪.这意味着,引擎总是试图匹配尽可能多的字符.解决方案很简单:告诉他用U修饰符非贪婪
/{{(.+)}}/U
Run Code Online (Sandbox Code Playgroud)
http://php.net/reference.pcre.pattern.modifiers