题
我正在写在PHP脚本编程语言解析器。该脚本语言的语法如下:
ZOMFG
&This is a comment
(show "Hello, World\!");
这是该语言编写的一个网页,显示的Hello,World!在浏览器中。但我也能有这样的代码:
ZOMFG
&This is a comment !
on multiple !
lines.
(show !
"Hello, !
World\!!
");
有关现在我用explode("\n", $content)
到网页的内容爆炸到具有在单独的索引的代码的每一行的阵列。
所以
ZOMFG
&This is a comment
(show "Hello, World\!");
变为:
array('ZOMFG', '&This is a comment', '(show "Hello, World\!");');
当一行以结束! (除了当!转义为\!),但应该补充的是线,包括以下行到阵列作为一个单独的元件。所以
&This is a comment !
on multiple !
lines.
变为
&This is a comment on multiple lines.
有谁知道如何做到这一点?
解决方案
你应该能够以负回顾后使用使preg_split。
(我发现一个例子)
$lines = preg_split('|(?<!\!)\n|', $code);
按照意见,请注意,这会导致两个换行符和!保持。无法看到,在这段时间str_replace函数更容易地解决了这个 - !不过想有一个...
不隶属于 StackOverflow