我正在尝试使用preg_match_all函数在PHP上运行正则表达式
“{{content 1}} {{content 2}}”
我正在寻找的结果是在{{和}}
中有2个匹配的数组这是表达式'/\{\{(.+)\}\}/'
我怀疑我的表情太贪心但是如何减少贪婪?
答案 0 :(得分:4)
您可以使用ungreedy修饰符?
,如下所示:
$regex = '/\{\{.*?\}\}/';
新的正则表达式将输出:
Array
(
[0] => Array
(
[0] => {{content 1}}
[1] => {{content 2}}
)
)
修改强>
想起另一种方法来做到这一点。您可以在正则表达式字符串的末尾添加U
(大写u),结果将是相同的,如下所示:
$regex = '/\{\{.+\}\}/U';
此外,这是一个有用的regex modifiers列表。
答案 1 :(得分:1)
您也可以使用U PCRE modifier(Ungreedy)
答案 2 :(得分:-1)
正则表达式字符串是单引号还是双引号PHP字符串?因为如果它是双引号字符串,花括号包含变量,所以需要转义两次。
"/\\{\\{(.+)\\}\\}/"