請考慮以下事項。我分裂在{標籤},這是在它們之間的具有字符(和/或數字)的任何數量大括號的字符串:在標記上拆分字符串,刪除空結果
$string = "Lorem {FOO} ipsum {BAR} dolor {FOO:bar} samet";
$temp = preg_split('/(\{.*?\})/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
所得陣列($溫度)是:
Array (
[0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR}
[4] => dolor [5] => {FOO:bar} [6] => samet
)
然而,如果$字符串以標記結束,如:
$string = "Lorem {FOO} ipsum {BAR} dolor {FOO:bar}";
然後將所得陣列($溫度)包含一個空元素(#6在這種情況下):
Array (
[0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR}
[4] => dolor [5] => {FOO:bar} [6] =>
)
顯然,這可以通過檢查空值來刪除,但在我看來這並不是最優雅的方式。有沒有替代(每個正則表達式可能?)沒有空元素在結果數組開始?
這個表達式的輸出是:陣列([0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR} [4] => dolor {FOO:bar}) - 在決賽中有「dolor」和{FOO:bar}數組元素。我在找的是:Array([0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR} [4] => dolor [5] => { FOO:bar})與{FOO:bar}在最後一個元素中獨立存在。這是你試圖做的還是我沒有正確理解你的評論? – Pr0no 2012-02-14 14:42:09
我提前點擊保存按鈕,對不起。現在查看完整答案... – rodneyrehm 2012-02-14 14:44:33