сопоставление ближайших строк к поисковому запросу (perl regex)

По сути, то, что я пытаюсь сделать, это выполнить поиск в довольно большом файле PHP и заменить любой блок кода PHP, который содержит строку «search_term», каким-либо другим кодом. т.е.

<?php
//some stuff
?>
<?php
// some more stuff
$str = "search_term";
// yes...
?>
<?php 
// last stuff
?>

должно стать

<?php
//some stuff
?>
HELLO
<?php 
// last stuff
?>

На данный момент у меня есть

$string =~ s/<\?php(.*?)search_term(.*?)\?>/HELLO/ims;

Это правильно соответствует ближайшему закрытию ?>, но совпадение начинается с самого первого вместо ближайшего к строке search_term.

Что я делаю не так?

5
задан Mala 11 May 2012 в 21:51
поделиться