编程语言
首页 > 编程语言> > PHP preg_match问题

PHP preg_match问题

作者:互联网

content.tpl

tratata 'hey' tratata <br/>
okay 'aaaaa' <br/>
'trtata' <br/>
echo 'tratata'hmmmm'traatata';
'hello' tratata <br/>

如何仅更改回声中的所有引号?

我需要

tratata 'hey' tratata <br/>
okay 'aaaaa' <br/>
'trtata' <br/>
echo 'tratata\'hmmmm\'traatata';
'hello' tratata <br/>

谢谢

解决方法:

使用回调非常简单:

$var = preg_replace_callback("`(?<=echo ')(.+)(?=';)`iU", function ($matches) { return addslashes($matches[1]); }, $var)

首先,我们将回声引号引起来的字符串匹配(别无其他),然后在发现的内容上应用addslashes函数. Ungreedy(U)选项很重要,因此.与整个字符串不匹配.

标签:preg-match,php,regex
来源: https://codeday.me/bug/20191209/2095547.html