2017-04-03 30 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或任何你想要什么,你想要什么。