正则表达式,用于注释掉文件中后跟特定字符串的所有打印语句


regular expression for commenting out all print statements in a file if followed by a particular string

我有一个类似于这样的文件:

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

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

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

我已经提出了以下正则表达式,但它不工作:

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

我需要使用regex条件吗?我很感激你的帮助。

谢谢。

谢谢大家的建议。不过我还是弄明白了。

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

我使用带有s选项的回溯断言来将字符串视为单行。它只匹配后面跟着查找断言内容的print。