PHP核心技术与最佳实践之正则表达式反向引用

PHP核心技术与最佳实践之正则表达式反向引用

反向引用用于重复搜索前面某个分组匹配的文本。例如:“\1”代表分组1匹配的文本:

\b(\w+)\b\s+\1\b

要反向引用分组捕获的内容,可以使用“\k<word>”上个例子:

\b(?<word>\w+)\b\s+\k<word>\b

【示例】:UBB标签代码

UBB标签用来在论坛和留言板中代替HTML,实现一些简单的HTML效果,同时防止滥用HTML出现安全问题。

最终UBB标签还是会要解析成HTML代码,才能让浏览器认识,以url标签为例。

“[url]1.gif[/url]”

<?PHP
       $str = ‘[url]1.gif[/url][url]2.gif[/url] [url]3.gif[/url]’;
       $s = preg_replace(“#\[url\](?<word>\d\.gif)\[\/url\]#”,”<imgsrc = www.example/upload/$1,$str>;
       Var_dump($s);
?>
时间: 2024-10-03 14:46:10

PHP核心技术与最佳实践之正则表达式反向引用的相关文章

PHP核心技术与最佳实践之正则表达式匹配规则

PHP核心技术与最佳实践之正则表达式匹配规则 本文介绍几种常用的匹配规则. 1.     字符组 查找数字.字母.空白很简单,因为已经有了对应这些集合的元字符,但是如果匹配没有预定义元字符的字符集合,方法很简单, 就是在方括号内列出它们. 例如:[aeiou]匹配任何一个英文元音字母,[.*?]匹配标点中的一个.注意此时方括号内的元字符失去了特殊意义. 也可以指定字符范围,例如[0-9]的含义和\d完全一致:代表一位数字:同理[a-zA-Z0-9]等同于\w; 字符组很简单,但是一定要弄清楚字符

PHP核心技术与最佳实践

<PHP核心技术与最佳实践>是一本致力于为希望成为中高级PHP程序员的读者提供高效而有针对性指导的经典著作.系统归纳和深刻解读了PHP开发中的编程思想.底层原理.核心技术.开发技巧.编码规范和最佳实践.全书分为5个部分:第一部分(1-2章)从不同的角度阐述了面向对象软件设计思想的核心概念.技术和原则,分析了面向对象的特性.设计模式的理念,指出了如何设计低耦合.高可扩展性的软件,等等:第二部分(3-6章)详细讲解了PHP中正则表达式的规范和使用技巧,PHP网络编程的原理.方法.技巧和一些重要的操

PHP核心技术与最佳实践--笔记

<?php error_reporting(E_ALL); /* php 5.3引入 延迟静态绑定 */ /* php5.4引入trait,用来实现多层继承 trait Hello{} trait World{} class MyHelloWorld{ use Hello,World; } */ /* php4时代 php是不支持析构函数的*/ /* php中数组索引是字符串,但是没有使用引号,php就将其认为是一个常量,找不到在视为变量 */ /** * php中的异常必须手动 * 可以结合错

PHP核心技术与最佳实践——全局浏览

难得买到并喜欢一本好书,‘PHP核心技术与最佳实践’. 几天时间,先看了个大概,总结一下整体是什么样子的,怎么看怎么学. 1.总共14章: 2.第1.2章讲PHP的OOP: 其中第一章侧重于PHP的OOP与Java等的对比,面对对象开发的概念性问题,PHP的OOP的特殊之处,并对此给出代码例子: 3.第3.4.5章对某一个基础技术应用进行详解: 第3章讲正则表达式(md,为啥我总是看了就忘,这个东西...): 第4章讲网络技术,包括HTTP协议,socket,抓包,cURL,SMTP等应用层应用

温习《PHP 核心技术与最佳实践》这本书

再次看这本书,顺手提炼了一下大致目录,以便后续看见目录就知道大概讲的些什么内容 PHP 核心技术与最佳实践 1.面向对象思想的核心概念 1.1 面向对象的『形』与『本』 1.2 魔术方法的应用 1.2.1 __set和 __get 方法 PHP 的重载和Java 等语言的重载不同. Java 里,重载指一个类中可以定义参数列表不同但名字相同的多个方法.比如,Java 也有构造 函数,只要保证方法签名不一样就行:而 PHP 则在一个类中只允许有一个构造函数. PHP 提供的『重载』指动态的『创建』

PHP核心技术与最佳实践之Hash算法

PHP核心技术与最佳实践之Hash算法 Hash表又称散列表,通过把关键字Key映射到数组中的一个位置来访问记录,以加快查找速度.这个映射函数称为Hash函数,存放记录的数组称为Hash表. 1.     Hash函数 作用是把任意长度的输入,通过Hash算法变换成固定长度的输出,该输出就是Hash值.这种转换是一种压缩映射,也就是Hash值得空间通常远小于输入的空间,不输入可能会散列成相同的输出,而不可能从Hash值来唯一的确定输入值. 一个好的hash函数应该满足以下条件:每个关键字都可以均

PHP核心技术与最佳实践之Hash表冲突

PHP核心技术与最佳实践之Hash表冲突 接着上一篇文章,测试后输出value1value2.当 $ht->insert('key12','value12'); Echo $ht ->find('key12');时, 发现输出value12value12.这是什么原因呢? 这个问题称为Hash表的冲突.由于insert的是字符串,采用的算法是将字符串的ASIIC码相加,按照此方法,冲突产生了.通过打印key12和key1的Hash值,发现他们都为8,也就说,value1和value12同时被存

PHP核心技术与最佳实践之对象的序列化

PHP核心技术与最佳实践之对象的序列化 对象是一堆数据,可以把对象存储起来,以便需要时使用,这就是对象的序列化. 所谓序列化,就是把保存在内存中的各种对象状态(属性)保存起来,并且在需要时可以还原出来.下面代码实现了把内存中的对象当前状态保存到一个文件中. $str = serialize($student); Echo $str; File_put_contents('store.txt',$str); 输出序列化后的结果: O:6:"person":2:{s:4:"nam

《深入理解Java7核心技术与最佳实践》读书笔记(1.1)---Project Coin介绍

OpenJDK中的Coin项目(Project Coin)的目的就是为了收集对Java语言的语法进行增强的建议.在Coin项目开始之初,曾经广泛地向社区征求提议.在短短的一个月时间内就收到将近70条提议.最后又9条提议被列入考虑之中.在这9条提议中,有6条成为Java7的一部分,剩下的2条提议会在Java8中重新考虑,还有1条提议被移到其它项目中实现.这6条被采纳提议的语法新特性涉及switch语句中使用字符串.整数字面量的改进.异常处理的优化.泛型创建简化.try-with-resources