所有的話,我有以下形式獲得具有不特定的前綴組
$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
請問什麼是不清楚的 - 我將在網上幾個小時。 –