2013-10-03 50 views
-2

我需要一些幫助,我有這樣的一個CSV文件不會忽略的,我需要一個正則表達式以不同的方式來格式化,我試過,但我不實際正則表達式,很容易混淆的字符串談到我的時候對這個說法格式使用正則表達式

這是原來的地址

10,維亞德拉Libertà街 - 90100巴勒莫(PA)

,我需要它這樣

維亞德拉Libertà街,10,90100巴勒莫(PA)

我能做些什麼?我必須這樣做,在PHP

+2

後你是怎麼嘗試 – Sal00m

回答

1

$str是您的CSV內容

$str = preg_replace_callback('/(\d+),\s([^\-]+)\-/', function($matches){ 
    return trim($matches[2]).', '.$matches[1].', '; 
}, $str); 
+1

只是爲了幫助他明白是怎麼寫的: 他抽出街道的號碼爲組和街道的名稱另一個組( - char被刪除,因爲它與研究的字符串匹配,但它沒有插入到第二組中)。 (\ d +)是指「通過尋找數字\ d的序列被1個或多個重複+創建grounp();然後療法是彗,用作分離器和一個空白\ S他通過選擇至少一個字符產生另一組。不包含^一 - (由\轉義) – sataniccrow

+0

這不是火箭科學,正則表達式都在這裏http://php.net/pcre記錄 – Anpher

+0

也許我錯了試圖幫助別人誰寫的「我試過,但我又不是實際正則表達式,很容易迷惑我。」有時explaing東西可以讓一個人能夠通過他/她自己的下一次做(和正則表達式沒有很好的可讀性知道)。 – sataniccrow