所有的话,我有以下形式获得具有不特定的前缀组
$string = "This is {test} for [a]{test2} for {test3}.";
我想不是由方括号前缀的大括号的字符串。因此,在上面的字符串中,我想获得{test}
和{test3}
,但不是[a]{test2}
。
我在回答https://stackoverflow.com/a/977294/2311074中发现,这可能是负面的预测。所以我试了
$regex = '/(?:(?!\[[^\}]+\])\{[^\}]+\})/';
echo preg_match_all($regex, $string, $matches) . '<br>';
print_r($matches);
但这仍然给我所有三个大括号。
阵列([0] =>数组([0] => {测试} [1] => {TEST2} [2] => {TEST3}) )
为什么这不起作用?
@WiktorStribiżew感谢您的详细解答。我正在追赶这个主题的负面看法。一旦我理解了,我会立即回复/提出你的回答。 – Adam
请问什么是不清楚的 - 我将在网上几个小时。 –