正则表达式固化分组(?>...)
web 正则表达式 2019-05-09 2712 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7439839 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)
摘自《精通正则表达式》P139
固化分组:(?>...)
「.*」在固化分组中,永远不会"交还"已经匹配的任何内容。固化分组还有一个重要的用途,尤其是能提高匹配的效率

例:

<?php
preg_match('/.*[0-9]/', 'abcdef9', $m);
var_dump($m);
preg_match('/(?>.*)[0-9]/', 'abcdef9', $m);
var_dump($m);
// array (size=1)
  // 0 => string 'abcdef9' (length=7)
// array (size=0)
  // empty
?>
第二个使用了固化分组,「.*」可以匹配整行记录,不会"交还"最后的数字,[0-9]得不到匹配所以匹配失败
第一个虽然也使用了「.*」,「.*」也可以匹配整行记录,但为了整个表达式的匹配,「.*」会"交还"最后的数字9,
如果要深入了解固化分组可以查看《精通正则表达式》一书的P171 和 P269

版权声明:本篇文章来源于网络。 来源链接

相关推荐
正则表达式中\Q和\E的用法
正则表达式 | 2019-05-10 9298
\l 下个字符小写  \L 接着的字符均小写直到\E  \u 下个字符大写  \U 接着的字符均大写直到\E  \Q 在non-word 字符前加上\,直到\E  \E 结束\L,\E和\Q  m/\Q$name\E/:表示元字符常量化, 即在$sizename里的元字符*...
正则表达式命名子组/(?P<num>\d+)/
正则表达式 | 2019-05-10 7035
在 PHP 4.3.3 中,可以对子组使用 (?P<name>pattern) 的语法进行命名。 这个子模式将会在匹配结果中同时以其名称和顺序(数字下标)出现, PHP 5.2.2中又增加了两种味子组命名的语法: (?<name>pattern) 和 (?’name’pattern)。 示例: <...
评论:0条
评论加载中...
发表评论