我试图解析代码并替换辅助函数的方法用法。我需要对传递给方法的实际参数进行更多处理,因此我计划使用preg_replace_callback。
现在我尝试解析的代码看起来像这样
<a class="button expanded" href="#contact">
<?= $this->Languages_model->trans( "Text Here!", $this->language->lid ); ?>
more <?= $this->Languages_model->trans( "Additional Text (C)", $this->language->lid ); ?></a>
我想要匹配的是方法调用:
$this->Languages_model->trans( "Text Here!", $this->language->lid );
$this->Languages_model->trans( "Additional Text (C)", $this->language->lid );
我目前正在使用以下正则表达式,但它不适合我。
$regex = '|\$this\->Languages_model\->trans\(.*\);|sm';
使用没有标志的正则表达式,返回我想要的,只要方法在单独的行上使用,但这不能保证。否则,它从第一个方法的开头到第二个方法的结尾匹配。
第一个参数内和第一个参数之间也可能有新行。
感谢您提供的任何帮助!