欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【模板引擎正则表达式调试小技巧】,下面是详细的分享!
模板引擎正则表达式调试小技巧
很久没有遇上PHP难题了,这次正则问题占了一点时间,还是老问题最大回溯、递归限制问题。学习透之后其实并不难修改调试有这类问题的正则。主要是以下几点。
基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯/递归的限制。
惰性匹配并不可怕,正常情况下模板并不会不够用,往往不会超出限制,discuz的模板引擎就大量使用了。但是因此而不去注意、不去学习,则容易书写错误并遇上问题。
当preg_*返回的是null的时候则要注意了,判断函数是is_null.
出错并不可怕,但是最好把错误都完整的输出,这样调试就很容易了。
除了输出出错原因,还要输出匹配的文本和使用的正则,这样就很容易调试了。
PHP代码
|
参考资料
1、2010, Laruence 《深悉正则(pcre)最大回溯/递归限制》
2、2011, PHP中文手册 preg_last_error
(来源:微风实验室)
以上所分享的是关于模板引擎正则表达式调试小技巧,下面是编辑为你推荐的有价值的用户互动:
相关问题:正则表达式,匹配模板
答:var exp = new RegExp('尊敬的[^,]*?,您的信息[^,]*?,你的编号为[\\d]+。我们将在近期联系您,确认您的邮寄地址。感谢您的支持!');alert(exp.test('尊敬的张三,您的信息我们已经收到,你的编号为01。我们将在近期联系您,确认您的邮寄地址... >>详细
相关问题:f12 开发调试工具怎么调试正则表达式
答:1.没见过有这样的工具。 2。如果有,那么很多写正则表达式的人,就失业了。 3.只见过,给定输入,通过你去写正则,然后获得你要的输出的。 4.有对应的正则的工具的,也还是上面的,输入字符串,输入正则,输出字符串 >>详细
相关问题:求教如何写javascript正则表达式删除空白行?调试...
答:replace(/^\s+$/m,'')就可以,下面的例子代码测试通过,请参考: xxx yyy 去除空行 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
