0

我有一个类似于此的文件:

<?php
    print "hello world" . "<br/>";
    print "foobar" . "<br/>";
    ...
    // Process parameter
    if ($var) {
        print $var . "<br/>";
    }
    ...
    print "foo" . "<br/>";
    ...
    print "bar" . "<br/>";
    ...
>?

我需要一个注释掉所有打印语句的正则表达式,如果说语句出现在Process parameter注释之后。

顺便说一句,我正在使用 perl 来处理上面的文件。

我提出了以下正则表达式,但它不起作用:

~(?s)(// Process parameter.*?)print(.*?\?\>)~$1//print$3~gi

我需要使用正则表达式条件吗?我将不胜感激任何帮助。

谢谢你。

4

1 回答 1

0

谢谢大家的建议。不过,我确实想通了。

~(?s)(?<=// Process parameter.*?)(print.*?)~//$1~gi

我正在使用带有 s 选项的后视断言将字符串视为单行。如果后面跟着后向断言的内容,它只会匹配 print。

于 2013-05-08T19:19:07.353 回答