2012-11-26 19 views
1

林再次要求在這裏:)刪除特徵線( n)的插圖中兩個「

比方說,我在PHP中的字符串,是這樣的:

Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. "Sed et est eget lorem congue 
eleifend. Fusce luctus" 

對,所以你看到的字符串這兩個引號--->「,對,如果在這兩個引號之間有一個以db爲單位的文本,它不應該像這樣有斷線,有沒有辦法,在PHP中用preg_replace函數的正則表達式來定位斷線在這兩個符號之間並刪除它們?

感謝您的時間傢伙, 沃爾瑪

+0

不,我想刪除breakline,只有breakline介於兩個引號之間唱歌「... – Martin

回答

2

有關匹配或嵌套元素(在本例中爲匹配的引號)的問題通常對於正則表達式來說有點不方便。

首先,讓我在這裏做一個假設:在引號內不允許使用引號內的引號(即您從未擁有Lorem "ipsem \" dolor"或類似的東西)。

有了這個假設,你的問題歸結爲:找到一個\n,然後是奇數的"(計數直到字符串結尾)。爲了確保這種情況,我們可以使用前瞻。爲了避免前導或尾隨空白的問題,我們可以匹配任何圍繞\n的空白,並將其替換爲單個空格。

$result = preg_replace('/\s*\n\s*(?=[^"]*"(?:[^"]*"[^"]*")*[^"]*$)/', ' ', $input); 

您可能要替換\n[\r\n]互操作性。

+0

這是完美本身我的朋友......非常感謝您的解釋和在這個上花費的時間! 。欣賞它! – Martin