2017-04-03 47 views
1

有效載荷(多行文本文件);正則表達式用於在多行模式中最後符號出現後替換換行符

foo bar()) 
zab()rab)(oof 
) 
abc 
dfe; 

aaa)bbb 
()hhh(
) 
xxx 
yyy; 

預期結果(後preg_replace()來電或模擬):

foo bar()) 
zab()rab)(oof 
) abc dfe; 

aaa)bbb 
()hhh(
) xxx yyy; 

所以,我需要一個正則表達式下次做:;之前找到最新)象徵來講替換所有空間符號(\s正則表達式)在);之間到文件末尾。

我嘗試在多線模式下使用負面後視,但沒有運氣。

+0

用什麼取代它? – Luke

+1

'$ payload = preg_replace_callback('〜\)([^ \)\;] +)\;〜',函數($ matches){return')'。 preg_replace('〜\ s +〜','',$ matches [1])。 ';';},$ payload);' – Deadooshka

+0

@Luke替換爲空字符串。 – Alex

回答

0

讓此評論標記爲已回答的問題:查看Deadooshka的評論。

0

如果替換不必與純正則表達式匹配,我會使用regexp來進行匹配。

\)([^\)]+);

這保證了它需要;之前最新)

之後,你會有內容什麼在中間,那裏你可以只需要替換\ n和\ r或任何你想要什麼,你想要什麼。