我试图用PHP使用preg_match_all函数对以下字符串运行正则表达式
"{{内容1}}{{内容2}}"
我正在寻找的结果是数组中有2个匹配{{和}}
这是表达式'/'{'{(.+)'}'}/'
我怀疑我的表达太贪婪,但如何使它不那么贪婪?
您可以使用非贪婪修饰符?
,如下所示:
$regex = '/'{'{.*?'}'}/';
新的正则表达式将输出:
Array
(
[0] => Array
(
[0] => {{content 1}}
[1] => {{content 2}}
)
)
编辑:
我想起了另一种方法。您可以在正则表达式字符串的末尾添加U
(大写u),结果将是相同的,如下所示:
$regex = '/'{'{.+'}'}/U';
还有,这里是一个有用的正则表达式修饰符列表
您也可以使用U PCRE修饰符(Ungreedy)
正则表达式字符串是单引号还是双引号PHP字符串?因为如果它在双引号字符串中,花括号包含变量,因此需要转义两次。
"/''{''{(.+)''}''}/"