我有一个类似于这样的文件:
<?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。