正则表达式中的/e模式的作用是将替换串中的内容当作代码来执行,/e模式是php语言才有的,除此之外还有/i(不区分大小写)等。
下面通过2个示例来演示php中正则/e模式的用法:<?php
header(“content-type:text/html;charset=utf-8”);
/*
* 示例1
*/
$subject = ‘
4+5=${4+5}
‘;
$str = preg_replace(‘/\$\{(.+)\}/e’, ‘$1’, $subject);
echo $str.PHP_EOL;
//运行结果为:
4+5=9
,因为’$1’中匹配出来的是’4+5’当做php表达式执行了。
/*
* 示例2
* 保留n位小数
*/
$precision = 2;
$subject = ‘看完《php从入门到精通》需要33.123456小时’;
$str = preg_replace(‘/([\d|\.]+)/e’, ’round($1, ‘.$precision.’)’, $subject);
echo $str;
//运行结果为:看完《php从入门到精通》需要33.12小时。即:33.123456被替换为round(33.123456, $precision)。
注意:虽然/e模式看似强大,但是它会使代码看起来非常糟糕,而且高版本的php已经不再支持此模式。所以为了系统的长远发展,请不要用/e模式,可以用preg_replace_callback代替。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/34317.html