2014-09-05 113 views
1
$text = "This is /n my text /n wow"; 

$quotes = explode('/n',$text); 

這將字符串分割成「這是」「我的文字」,「哇」如何使爆炸()包括爆炸字符

,但我希望它離開字符串「/ N」爲它是不是切割它關閉, 輸出應該是這樣的:

「這是/否」,「我的文/ N」「哇」

+1

[你在試圖解決什麼?](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – 2014-09-05 15:55:44

回答

4

爆炸的字符串到一個數組然後附加separ ator到結果數組的每個元素上。 (可能還需要trim($val))。

+1

我懷疑他想把它添加到最後一個項目。 – 2014-09-05 16:03:58

+0

@KarolyHorvath好點。現在已經佔了。 – 2014-09-05 16:07:03

2

如果您只有一個可能的分隔符,那麼您可以簡單地將它附加到explode返回的標記。但是,如果您問這個問題,例如因爲您有多個可能的分隔符,並且需要知道哪個分隔了兩個令牌,那麼preg_split可能適合您。例如。用於分離','和​​3210:

$matches = preg_match('/(,|;)/', $text, -1, PREG_SPLIT_DELIM_CAPTURE); 
2

你有看着使用preg_split()功能。每文檔:

preg_split - 用正則表達式

使用此功能分割字符串,應用匹配的空間,然後前面的/n串積極的回顧後。

$quotes= preg_split("/(?<=\/n) /", $text); 

您可以在上述語句後通過執行print_r($quotes);來測試這是否是所需的功能。這從print_r功能將輸出類似於以下內容:

Array ([0] => This is /n [1] => my text /n [2] => wow) 

您可能需要使用trim()上的值來清除掉開頭和結尾的空白,但總體而言,它似乎做什麼你問。


DEMO:

如果你想測試這個功能了,嘗試複製下面的代碼塊,並將其粘貼到碼域窗口http://phpfiddle.org

<?php 
$text = "This is /n my text /n wow"; 
$values = preg_split("/(?<=\/n) /", $text); 
print_r($values); 
?> 

選擇運行 - F9選項來查看輸出。我對複製和粘貼演示示例表示歉意。我無法弄清楚如何創建像其他一些小提琴程序一樣的專用URL。

+0

@ l'l l你確定嗎?在OP的代碼中,他/她在字符串中有'/ n'字符,而不是換行符\ n字符。我改變了我的phpfiddle使用'\ n',它返回了未改變的字符串。但我可能會離開。正則表達式我不太好。 – War10ck 2014-09-05 16:29:37