我正在尝试做一个 preg_replace 以便我可以格式化从另一个程序输出的一些文本,这些文本看起来不完全是我想要的......
这是一个片段....
zzz:xxx1 _:somewhereElse_1 ;
xxx:yyy "dddd" ;
zzz:xxx2 _:somewhereElse_2 ;
yyy:zzz "ffff" ;
_:somewhereElse_1
I am somewhere else ;
_:somewhereElse_2
whatsup ;
我想做的是让它看起来像这样......
zzz:xxx1 I am somewhere else ;
xxx:yyy "dddd" ;
zzz:xxx2 whatsup ;
yyy:zzz "ffff" ;
我一直在尝试在不同的阶段做到这一点......
阶段 1. 从最高位提取 _:identifier...
preg_match_all("/.*:.*_:somewhereElse_[(0-9)]+/", $data, $matches);
那行得通但是我不能做的是从底部提取相应的值……我的大坝正则表达式都不起作用。
如果你记住我已经提取了所有的某处Else_n,我能得到的最接近的是
preg_match_all("/(\n$somewhereElse_n\n.*;)?/s", $data, $matches);
问题是匹配数组作为空位置的负载(近 2000 年),它匹配所有的某个地方,而不是在第一个 ..
[1149] =>
[1150] =>
[1151] =>
[1152] =>
_:somewhereElse_1
I am somewhere else ;
So am i;
_:somewhereElse_2
whatsup ;
[1153] =>
[1154] =>
任何帮助将不胜感激:D