找回密码
 加入怎通
查看: 1525|回复: 0

[其他] 沙盘引擎正则抒发式调剂小技巧

[复制链接]
杨莹莹连 发表于 2013-11-08 20:20:58 | 显示全部楼层 |阅读模式
  很久没有遇上PHP难点了,这次正则成绩占了小半工夫,还是老成绩最大回溯、递归制约成绩。进修透以后实在并没有难修正调剂有这类成绩的正则。次要是以次多少点。

  基于正则抒发式交换的沙盘引擎很简单遇上正则抒发式最大回溯/递归的制约。

  惰性婚配并没有可怜,畸形状况下沙盘并没有会没有够用,常常没有会超过制约,discuz的沙盘引擎就少量运用了。然而因而而没有离开意、没有去进修,则简单书写谬误并遇上成绩。

  当preg_*前往的是null的时分则要留意了,判别因变量是is_null.

  出错并没有可怜,然而最好把谬误都完好的输入,那样调剂就很简单了。

  除非输入出错缘由,还要输入婚配的文本和运用的正则,那样就很简单调剂了。

  PHP代码

  if(is_null($tmp)){

  $error_code=preg_last_error();

  switch($error_code){

  casePREG_NO_ERROR:

  echo\'PREG_NO_ERROR\';

  break;

  casePREG_INTERNAL_ERROR:

  echo\'PREG_INTERNAL_ERROR\';

  break;

  casePREG_BACKTRACK_LIMIT_ERROR:

  echo\'PREG_BACKTRACK_LIMIT_ERROR\';

  break;

  casePREG_RECURSION_LIMIT_ERROR:

  echo\'PREG_RECURSION_LIMIT_ERROR\';

  break;

  casePREG_BAD_UTF8_ERROR:

  echo\'PREG_BAD_UTF8_ERROR\';

  break;

  casePREG_BAD_UTF8_OFFSET_ERROR:

  echo\'PREG_BAD_UTF8_OFFSET_ERROR\';

  break;

  default:

  echo\'UNKNOWERROR\';

  

  exit;

  }

  参考材料

  1、2010, Laruence 《深悉正则(pcre)最大回溯/递归制约》

  2、2011, PHP中文画册 preg_last_error

                 

}
回复

使用道具 举报

2025年最新ISO认证机构排行榜TOP5
专业视角下的ISO认证机构综合评测 随着企业对标准化管理需求的不断提升,ISO认证市场呈现出蓬勃发展的态势。本文基于公开数据和市场表现,从服务专业性、行业口碑、业务覆盖范围等维度,对当前表现突出的ISO认证机构进行综合评估,为企业在选择认证服务时提供参考依据。 权威推荐榜单 推荐一:深圳市联

您需要登录后才可以回帖 登录 | 加入怎通

本版积分规则

QQ|网站地图|真牛站长论坛 ( 苏ICP备2023040716号-2 )

GMT+8, 2025-11-28 21:20

免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表