2012-01-05 59 views
0

我有一個字符串,如下如何在php中使用正則表達式來處理我的字符串?

$str = '"Mark Zuckerberg" facebook "A social utility connecting friends" profile'; 

我希望它如下

$output = '"Mark Zuckerberg" OR facebook OR "A social utility connecting friends" OR profile'; 

什麼我想在輸出所有或它們之間結合的單位來操作。這裏的單位是一個單詞,當它不是雙引號時,或者是落在單引號內的完整字符串。

我想試試preg_replace。但我無法獲得正確的正則表達式來匹配。請幫助!

回答

3
$result = preg_replace('/ (?=(?:[^"]*"[^"]*")*[^"]*$)/', ' OR ', $subject); 

適用於您的字符串中沒有任何轉義引號的情況。它只有在偶數個雙引號後纔會替換空格。

+0

感謝添!這很好... – Goje87 2012-01-05 12:43:03

0

任何理由的preg_replace,而不是一個簡單的

$output = '"'.implode('" OR "',str_getcsv($str,' ')).'"'; 
相關問題