我一直在爲這樣的半天掙扎,我似乎無法找到答案。請幫助一個noob。 :)PHP preg_split,表達我大括號和保存分隔符
我有一個字符串,它包含幾個花括號中的句子。它看起來是這樣的:{!真棒另一個文本}
{超級騙子額外的文本} {在這裏,我們再次去...}
現在我想分割它。
我想通了,我可以搜索喜歡的圖案} {等,所以我做了這樣的:
$key = preg_split('/[!?.]{1,3}\} \{/',$key);
但這種方式我失去的分隔符,我失去了所有。 ! ?等等。
我試圖那樣做:
$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>";
}
但這個代碼永遠不會加載,所以我收集的東西是不對的。但是什麼?
在此先感謝。
謝謝,這一個比我想象的更好。 :) – moskalak
這工作得很好,在我有一個字符串包含幾個JSON子串連接在一起的情況。例如:''{「id」:「Q3」,「name」:「問題3」} {「id」:「Q4」,「name」:「問題4」}''。唯一需要注意的是,如果其中一個子字符串中有一個關閉的大括號,則正則表達式將停止。 –
@MikeFinch讓事情變得複雜。如果你的連接是串聯的,但總是與'{} {}'相鄰,你可以'preg_split('/ \} \ {/',$ str)'在'} {'連接處拆分字符串,但是你需要恢復關閉'}'或打開'''''preg_split()'將刪除。如果可能的話,試着讓你的數據源輸出一個適當的JSON對象數組,以'[{...},{...},{...}]開頭' –