我有一個字符串,它由幾個句子組成,這些句子位於我想刪除的花括號中。這並不難(正如我現在所知道的那樣),但真正的麻煩在於它是多層次的,我想要剝離的是頂級括號,並將所有內容保留完好。它看起來是這樣的:PHP,正則表達式和多級大括號
{Super duper {extra} text.} {Which I'm really {starting to} hate!} {But I {won't give up} so {easy}!} {Especially when someone is {gonna help me}.}
我想創建一個數組,將由這四個條目:
Super duper {extra} text.
Which I'm really {starting to} hate!
But I {won't give up} so {easy}!
Especially when someone is {gonna help me}.
我已經嘗試了兩種方式,一種是使preg_split這並沒有做太多好:
$key = preg_split('/([!?.]{1,3}\} \{)/',$key, -1, PREG_SPLIT_DELIM_CAPTURE);
$sentences = array();
for ($i=0, $n=count($key)-1; $i<$n; $i+=2) {
$sentences[] = $key[$i].$key[$i+1]."<br><br>";
}
另外一個是使用preg_match_all這是相當不錯,直到我意識到我必須多層次的括號:
$matches = array();
$key = preg_match_all('/\{[^}]+\}/', $key, $matches);
$key = $matches[0];
在此先感謝! :)
是你的大括號保證要進行平衡? – ghoti
@ghoti是的,他們保證是平衡的。 – moskalak
@Vulcan我已經添加了關於我試過的原始帖子的信息。 – moskalak